John Squirrels
Mức độ
San Francisco

Tầng cũ 06

Xuất bản trong nhóm

Lộ trình của một nhà phát triển Java

Một người bạn của tôi đã thắc mắc tại sao các nhà phát triển luôn vui vẻ như vậy. Câu trả lời mà cô ấy đưa ra rất đơn giản và đáng ngạc nhiên: họ làm những gì họ thích và kiếm được nhiều tiền. Chào mừng đến với thế giới của các nhà phát triển phần mềm. Tầng cũ 06 - 1

Lương của nhà phát triển phần mềm

Tôi muốn nói với bạn về mức lương của các nhà phát triển. Đất đai nằm ở mức lương như thế nào, nơi bạn nên làm việc và nơi bạn không nên làm việc. Nếu bạn không phải là nhà phát triển và cố gắng tự mình giải đố, bạn có thể nhận được một dữ liệu khá gây tranh cãi. Điểm chính là yếu tố chính ảnh hưởng đến mức lương của nhà phát triển không phải là bằng cấp, mà là nơi làm việc. Đôi khi, với trình độ bằng nhau, sự khác biệt giữa nơi làm việc tốt và xấu có thể từ 2 đến 10 lần(!) Mỗi ​​thời điểm nhất định, trình độ của bạn là không đổi. Bạn không thể trở nên đủ điều kiện gấp đôi trong một tháng và được trả gấp đôi. Nhưng bạn có thể thay đổi nơi làm việc trong một tháng và nhận lương gấp đôi. Một lần trong vòng hai tháng, lương của tôi nhân ba (!) – Trải nghiệm khó quên. Vì vậy, hãy tìm hiểu xem, nơi nào là tốt nhất.
  1. Cho dù kinh doanh chính của một công ty là phát triển phần mềm
  2. Cho dù công ty được định hướng trên thị trường toàn cầu hay địa phương
  3. Văn phòng chính đặt tại đâu: nước phát triển hay nước đang phát triển
Lưu ý rằng thành phố bạn làm việc không liên quan. Có nghĩa là, nếu bạn kiếm được ở Barcelona ít hơn năm lần so với bạn của bạn ở New York, thì các yếu tố tôi đã đề cập có thể đã ảnh hưởng. 

con số cụ thể

Vì mức lương ở các nơi khác nhau trên thế giới là khác nhau, nên tôi đề xuất lấy mức lương của Nhà phát triển Java cấp cao với 5 năm kinh nghiệm làm điểm khởi đầu và gọi đó là “tối đa 5 năm”. Tất cả các số liệu dưới đây sẽ được đưa ra dưới dạng phần trăm của số tiền này. Dưới đây là một số ví dụ về mức lương “tối đa 5 năm” ở các thành phố khác nhau trên thế giới: Tầng cũ 06 - 2Dưới đây là số tiền mà một Nhà phát triển cấp cao Java với 5 năm kinh nghiệm có thể kiếm được tùy thuộc vào công ty anh ta làm việc: Tầng cũ 06 - 3Tầng cũ 06 - 4Điều kỳ lạ nhất về tình hình hiện tại là gì? Một nửa số lập trình viên làm việc trong các công ty cấp 1 và cấp 2. Bạn có muốn biết, bắt được gì không? Có hàng trăm vị trí tuyển dụng được mở ở các công ty cấp 3 và cấp 4. Những công ty này sẵn sàng trả cho bạn mức lương cao hơn và thường là điều kiện làm việc tốt hơn. Tôi biết hai Java Junior, một trong số họ có công việc được trả khoảng 3% của “tối đa 5 năm” (công ty cấp 1) và một người khác có công việc với 30% mức lương “tối đa 5 năm” (cấp 4). Vậy tại sao nhận được ít hơn? Nhu cầu về lập trình viên vượt quá khả năng cung cấp – đừng đi làm ở nơi bạn được trả lương thấp hơn! Kết luận 1: Mức lương trung bình cho các nhà phát triển Java (với bất kỳ kinh nghiệm nào) là 40%-50% mức lương “tối đa trong 5 năm”. Kết luận 2: Mức lương trung bình của bạn trong 5 năm sẽ bằng khoảng 90%-110% mức lương “5 năm tối đa”, nếu bạn không làm ở công ty cấp 1 và cấp 2 mà làm ở công ty cấp 3 và 4.

Những gì bạn có thể đạt được trừ khi bạn làm những điều ngu ngốc

Nếu bạn bắt đầu tự học lập trình ngay bây giờ, mức lương của bạn có thể như sau: Tầng cũ 06 - 5

Kế hoạch

0-3 tháng (Học sinh)

Bạn biết rất ít về lập trình. Bạn có thể đã học nó ở trường hoặc ở một trường cao đẳng ở cấp độ cơ bản. Điều bạn cần làm là học cách lập trình và học Java. Mục tiêu của bạn là có được công việc với tư cách là Nhà phát triển Java Junior trong một công ty cấp 3 trở lên. Trong ba tháng đầu tiên của kế hoạch, bạn sẽ không nhận được gì, bởi vì bạn chỉ đang học cách lập trình. Nhưng bạn bắt đầu càng sớm thì càng tốt. Thời điểm tốt nhất là NGAY BÂY GIỜ. Trong tương lai, khi bạn có một gia đình và nhiều khoản vay, việc tái đủ điều kiện sẽ khó khăn hơn nhiều. Để sửa chữa sai lầm của mình, bạn sẽ phải dành dụm tiền để chi trả ít nhất cho một năm sống bình thường. Đừng phạm sai lầm ngớ ngẩn.

3-15 tháng (Java Junior Developer)

Bạn đã làm việc với tư cách là nhà phát triển phần mềm và kinh nghiệm của bạn tăng lên hàng ngày. Đừng thư giãn. Bạn có rất nhiều việc phải làm trước khi nghỉ ngơi trên mái chèo. Điều bạn cần làm là – nghiên cứu các công nghệ mà bạn sẽ cần với tư cách là Nhà phát triển cấp trung. Cái gì đây? Thế giới không ngừng thay đổi. Tôi sẽ đưa cho bạn những lời khuyên và cuộc sống sẽ thay đổi tất cả. Tìm một vài vị trí tuyển dụng trên trang web và xem những gì bạn cần áp dụng. Hãy nhớ đọc một cuốn sách của Bruce Eckel “Tư duy bằng Java”. Mục tiêu của bạn trong năm đầu tiên làm Java Junior Developer là đạt cấp độ Java Middle Developer. Không ai nói rằng điều đó sẽ dễ dàng, nhưng điều đó là có thể đối với một người có mục tiêu. Nó sẽ tăng lương của bạn ngay lập tức lên tới 40% của “tối đa 5 năm” ($50K cho SF và London, $6K cho Bangalore).

Lập trình 2 năm (Nhà phát triển trung cấp Java, cấp 1)

Bạn đã hoàn thành tốt công việc vào năm ngoái và hiện tại bạn là Nhà phát triển cấp trung Java. Bạn có thể sống khá giả khi kiếm được 50% tiền lương của Nhà phát triển Java cấp cao. Bạn đang được giao một số nhiệm vụ nghiêm túc trong công việc và kinh nghiệm của bạn tăng lên đáng kể. Bạn sẽ đạt cấp độ Nhà phát triển cấp cao Java sau hai hoặc ba năm. Không cần vội. Dù sao thì bạn cũng sẽ không nhận được những phần thưởng lớn về tiền lương. Điều bạn cần làm là tìm hiểu các mẫu thiết kế, đọc – McConnell's Code Complete. Hoàn thiện chất lượng mã và kỹ năng nhóm của bạn. Tạo quy tắc đọc 1 cuốn sách về lập trình máy tính mỗi tháng. Sau đó, trong 4 năm, bạn sẽ thông minh hơn 50 cuốn sách còn lại. Đừng trì hoãn nó: bạn sẽ không có nhiều thời gian rảnh rỗi hơn, ngoài ra, rất có thể bạn sẽ lập gia đình, hoặc nếu có thì sẽ lớn hơn. Mục tiêu của bạnlà chọn một số công nghệ để chuyên môn hóa với tư cách là Nhà phát triển Java cấp cao. Bạn không thể học tất cả, bạn biết đấy. Và việc trở thành bậc thầy trong một chuyên ngành duy nhất luôn là một quyết định đúng đắn. Tầng cũ 06 - 6

Lập trình 3 năm (Nhà phát triển trung cấp Java, cấp 2)

Bạn hiện là Nhà phát triển cấp trung có kinh nghiệm và bạn đang nghĩ đến việc trở thành Nhà phát triển cấp cao. Thật dễ chịu cũng như uy tín. Mức lương của bạn vượt quá 60% mức “tối đa 5 năm” ($10 nghìn ở Bangalore, $25 nghìn ở Kiev, $40 nghìn ở Berlin, $80 nghìn ở New York). Kể từ thời điểm này, theo yêu cầu đối với các chuyên gia như bạn, ưu đãi sẽ tăng lên. Bạn sẽ luôn có thể tìm được việc làm trong một vài ngày và bạn sẽ hiếm khi kiếm được ít tiền hơn hiện tại. Điều đó, tất nhiên, nếu bạn không làm điều gì ngu ngốc. Những gì bạn cần làm làtiếp tục nghiên cứu các công nghệ bạn đã chọn. Làm việc tốt hơn. Không phải vì lợi ích của chủ nhân của bạn, vì lợi ích của riêng bạn. Đăng ký tham gia vào các dự án liên quan đến các công nghệ đầy hứa hẹn (như BigData, tại thời điểm bài viết này đang được viết). Dù sao thì bạn cũng sẽ dành 8 giờ mỗi ngày trong văn phòng, vậy tại sao không kiếm thêm một ít tiền cho việc đó, và điều quan trọng hơn nhiều, là trải nghiệm quý giá nhất mà bạn sẽ cần trong tương lai. Mục tiêu của bạn là tìm một công việc mới. Một đội tốt luôn luôn được tìm thấy. Bạn sẽ phải đối mặt với các dự án và công nghệ mới. Bạn không cần phải cắm rễ vào ghế của mình. Nếu bạn vẫn đang làm việc ở công ty cấp ba, hãy nghĩ đến việc tuyển dụng vào công ty cấp bốn.

Lập trình viên năm thứ 5 (Java Senior Developer, level 1

Bạn hiện là Nhà phát triển cấp cao. Có thể, bạn không xứng đáng với điều đó, và bạn cảm thấy điều đó. Tuy nhiên, xin chúc mừng tôi. Không quan trọng bạn có xứng đáng với vị trí của mình bây giờ hay không, điều quan trọng là bạn trở nên xứng đáng với nó trong tương lai. Tôi nghĩ bạn sẽ đồng ý rằng tốt hơn hết là bạn nên kiếm một công việc tốt và sau khi phát triển đến mức cần thiết thì ngược lại. Tôi hy vọng bạn vẫn chưa quên lời khuyên đọc một cuốn sách mỗi tháng của tôi chứ? Bất kỳ sinh viên nào cũng sẽ ghen tị với kiến ​​thức và kỹ năng của bạn bây giờ. Cụ thể hơn, anh ấy sẽ cầu nguyện cho họ. Nghĩ mà xem: bạn có thu nhập khủng, gần bằng 90% mức lương “tối đa 5 năm”. Chắc bạn vẫn còn trẻ. Thế giới đang ở dưới chân bạn. Những gì bạn cần làm làđể đánh giá lại các công nghệ bạn đã chọn. Có lẽ, bạn cần thay đổi chuyên môn. Thế giới đã thay đổi, công nghệ đã thay đổi và bạn đã thu được khá nhiều kiến ​​thức trong hai năm qua. Những gì bạn chọn bây giờ sẽ trở thành tiêu đề cho bạn trong vài năm tới. Đã đến lúc chọn công nghệ yêu thích của bạn. Mục tiêu của bạn là chọn hướng phát triển của bạn. Chúng nhiều vô kể, không ai có thể gọi tên hết được, nhưng sự lựa chọn của bạn phải được thực hiện ngay bây giờ. Nếu bạn tạo ra một thay đổi nhỏ ngày hôm nay, bạn sẽ nhận được một thay đổi lớn trong tương lai.

Lập trình năm thứ 6 (Nhà phát triển Java Senior, cấp độ 2)

Bạn đã quyết định về tương lai của mình và bạn đang thực hiện ước mơ của mình thành hiện thực. Một hướng đi được chọn đúng cùng với mong muốn tiến về phía trước – và kết quả sẽ không lâu dài. Chúc mừng. Tôi rất vui khi thấy có thêm một người chạm đến ước mơ của mình. Có một sự thật sâu sắc. Mọi người thường đánh giá quá cao những gì họ có thể đạt được trong một năm và đánh giá thấp những gì họ có thể làm trong năm năm. Nhìn lại năm năm trước. Nó là như vậy. Điều bạn cần làm là tránh những quyết định thiếu sáng suốt và không được lười biếng. Mục tiêu của bạn là chọn hướng và tiến về phía trước. Hay bạn nghĩ nó kết thúc ở đây? Nhớ tốt nghiệp của bạn. Nó không phải là kết thúc, nó chỉ là bắt đầu.

Chuyên ngành tương lai của bạn

Tầng cũ 06 - 7Bạn có thể phát triển với tư cách là chuyên gia kỹ thuật (nhánh trên), quản lý (nhánh dưới) hoặc chuyên gia tư vấn độc lập/chuyên nghiệp được thuê (nhánh trung bình). Tất cả phụ thuộc vào những gì bạn thích.

Sự nghiệp của Java Developer

Sự nghiệp của nhà phát triển khác với bất kỳ nghề nghiệp nào khác. Bạn không cần phải trở thành người quản lý để kiếm được nhiều tiền. Thường xảy ra trường hợp Nhà phát triển cấp cao kiếm được nhiều tiền hơn người quản lý-sếp của anh ta. Bạn càng có nhiều kinh nghiệm thì mối quan hệ làm việc của bạn với sếp càng bền chặt, thay đổi từ “sếp-cấp dưới” thành “ngôi sao và người quản lý”. Tha hồ biết các nhà phát triển giá trị của họ chọn các dự án và vị trí tuyển dụng. Hãy hạnh phúc cho những người của chúng ta. Vậy bạn cần gì để trở thành một nhà phát triển nổi tiếng tầm cỡ thế giới và được đánh giá cao như vậy? Bạn phải có nhiều kinh nghiệm trong hầu hết các công nghệ mới và được yêu cầu cao. Làm thế nào để đạt được điều này? Xem bên dưới. Tầng cũ 06 - 8Ngay khi bạn nhận được công việc với tư cách là một nhà phát triển, có hai điều bắt đầu xảy ra với bạn; tuy nhiên, chúng không phải lúc nào cũng có thể nhìn thấy được. 1. Bạn có được kinh nghiệm trong các dự án thực tế và phát triển nhanh chóng. Một năm làm công việc này cho bạn nhiều kinh nghiệm hơn 5 năm học đại học. Kinh nghiệm là một vấn đề quan trọng đến mức họ viết “Yêu cầu nhà phát triển Java với 3 năm kinh nghiệm” trong các vị trí tuyển dụng được đăng. 2. Bạn nghiên cứu các công nghệ mới 8 giờ một ngày và được trả lương hậu hĩnh cho việc đó. Bạn thực sự không thể đánh giá quá cao thực tế này. Trong một số trường hợp, các kỹ năng bạn có được rất có giá trị đến mức bạn có thể làm việc miễn phí để có được chúng hoặc thậm chí trả lương. Nếu bạn chọn các dự án mà bạn làm việc một cách khôn ngoan, bạn sắp có một sự nghiệp phát triển phần mềm quay cuồng. Vậy… chọn gì đây? Điều thường xảy ra là bạn không biết công nghệ nào sẽ hữu ích, vì vậy bạn bắt đầu chọn “thích và không thích” và “xu hướng thời trang”. Bạn có thể gặp may mắn hoặc bạn có thể không. Vì vậy, tốt hơn hết bạn nên biết điểm đến của mình trước. Có rất nhiều cách để phát triển cho các lập trình viên, vì vậy, để làm cho nó đơn giản, tôi sẽ chọn một vài cách trong số đó và viết tầm nhìn của tôi về tình huống phía trước. Đừng nghĩ rằng mô hình này là một đường cứng; nó đúng hơn là một cái nhìn đơn giản hóa về những thứ được trình bày để làm cho nó rõ ràng.

Nhà phát triển 200 tuổi

Nếu bạn thích lập trình nhất, thì đây là con đường của bạn: Nhà phát triển cấp cao, sau đó là Nhà phát triển trưởng công nghệ và một kiến ​​trúc sư. Bằng cách này, bạn có thể làm việc với tư cách là nhà phát triển trong 50 năm và hơn thế nữa. Trong hầu hết các trường hợp, mức lương của Nhà phát triển cấp cao và Nhà phát triển lãnh đạo công nghệ cao hơn mức lương của người quản lý của họ. Vì vậy, nhận được giá trị tiền của bạn.

Giám đốc. Bạn thật may mắn vì bạn không giống như những người khác

Bạn đã đi đến chỗ kẻ thù. Chỉ đùa thôi. Nếu bạn phát hiện ra những kỹ năng tổ chức tuyệt vời, thì cách của bạn là: Trưởng nhóm và sau đó là Quản lý dự án. Nó sẽ cho bạn cơ hội trở thành trưởng phòng và mở doanh nghiệp của riêng bạn. Đó là những gì bạn muốn, phải không?

Nhà là nơi có trái tim

Tầng cũ 06 - 9Nếu bạn đã lập gia đình , thì có lẽ bạn mong muốn có một cuộc sống tốt đẹp và êm ấm ở một đất nước có nền kinh tế vững mạnh. Có lẽ bạn cân nhắc chuyển đến Canada, Hoa Kỳ, Thụy Sĩ hoặc thậm chí là Úc. Bạn có những kỹ năng tuyệt vời và một nghề nghiệp đang được yêu cầu. Bạn sẽ không phải bắt đầu từ việc rửa bát đĩa. Bạn sẽ bắt đầu với tư cách là Nhà phát triển cấp cao Java. Có lẽ, kiếm được rất nhiều. Không tệ, ha?

Xem Napoli và không chết.

Bạn chưa có gia đình và bạn thích đi du lịch . oDesk là tất cả của bạn. Tìm một khách hàng, đồng ý với mức lương $20-$50 mỗi giờ, mang theo máy tính xách tay và đi! Tiền lương của bạn sẽ đủ để sống ở bất cứ đâu trên thế giới. Tại sao không bắt đầu biến ước mơ của bạn thành hiện thực ngay lập tức?

Tôi không muốn lập trình, tôi là con gái..

Nếu bạn là con gái , bạn có thể phải nghỉ thai sản . Nó giống như một trò đùa phân biệt giới tính. Tuy nhiên, có rất nhiều ý nghĩa thông thường trong đó. Nhiều khả năng, khi nghỉ thai sản, bạn sẽ có thể nhận được rất nhiều tiền nghỉ thai sản (ở những quốc gia có chế độ bảo trợ xã hội cao). Có những công ty không phải trả tiền, và có những công ty trả lương cao. Một trong những sinh viên của tôi nhận được một phần ba tiền lương hàng năm khi nghỉ sinh. Và điều này đã xảy ra vào mùa xuân năm 2009, trong đợt sa thải nhân viên. Và trong một năm rưỡi nữa, bạn có thể quay lại, ít nhất là Nhà phát triển cấp trung.

Cấp 6

Tầng cũ 06 - 10

1 Elly. Khả năng hiển thị đối tượng. vô giá trị

- Này, Amigo! - Chào Elly! Bạn sẽ cho tôi biết một cái gì đó thú vị ngày hôm nay? - Hôm nay tôi sẽ kể cho các bạn nghe về thời gian tồn tại của một vật . Sau khi một đối tượng được tạo, nó tồn tại (sống) cho đến khi có ít nhất một biến lưu trữ địa chỉ của nó (có ít nhất một tham chiếu đối tượng). Nếu không còn tham chiếu nào nữa, thì đối tượng sẽ chết. Ví dụ: Tầng cũ 06 - 11- Đối tượng «cat Tommy» tồn tại trong một dòng duy nhất kể từ thời điểm nó được tạo. Trong dòng tiếp theo, biến duy nhất lưu trữ tham chiếu của nó được đặt thành null và máy ảo Java sẽ hủy đối tượng. - Đối tượng «cat Sammy» sau khi tạo được lưu vào biến cat1. Hay đúng hơn, cat1 lưu trữ một tham chiếu đến đối tượng. Sau đó, một vài dòng bên dưới tham chiếu này được sao chép vào biến cat2. Sau đó, một tham chiếu đến một đối tượng khác được lưu trữ trong cat1 và tham chiếu đến «cat Sammy» chỉ còn lại trong cat2. Cuối cùng, ở dòng cuối cùng của phương thức main, tham chiếu cuối cùng đến đối tượng được đặt thành null. - Đối tượng «cat Maisy» tồn tại trong một dòng duy nhất kể từ thời điểm nó được tạo. Trong dòng tiếp theo, biến cat2 được gán một giá trị khác và tham chiếu đến «cat Maisy» bị mất. Đối tượng trở nên không thể truy cập được và được coi là rác (đã chết). - Đối tượng «cat Ginger» tồn tại từ khi nó được tạo cho đến khi kết thúc phương thức. Trong thời gian chạy khi phương thức thoát, biến cat1 sẽ bị hủy và sau đó đối tượng «cat Ginger» cũng sẽ bị hủy. - Rõ ràng. - Tuy nhiên, nếu bạn tạo đối tượng Cat trong một phương thức nào đó và lưu trữ tham chiếu của nó trong một biến lớp, thì Cat sẽ tồn tại miễn là có tham chiếu đến nó từ một đối tượng hiện có khác. - Thông thường, một đối tượng không bị phá hủy ngay lập tức. Máy ảo Java thỉnh thoảng kích hoạt bộ sưu tập rác để loại bỏ các đối tượng không sử dụng. Tôi sẽ nói với bạn về điều đó sau. - Nếu muốn một biến nào đó ngừng lưu một tham chiếu đối tượng, bạn có thể gán cho nó giá trị null hoặc một tham chiếu đến đối tượng khác.

2 Giáo sư, Thu gom rác

Tầng cũ 06 - 12- Này, Amigo! Đây là một liên kết hữu ích về bộ sưu tập rác trong Java. Đó chắc chắn không phải là bài giảng xuất sắc của tôi, nhưng thế cũng đủ tốt: Cơ bản về bộ sưu tập rác Java

3 Elly, hoàn thiện

- Xin chào lần nữa! Bây giờ tôi sẽ giới thiệu ngắn gọn cho bạn về phương thức finalize() . Phương thức này được gọi bởi máy ảo Java trên đối tượng trước khi đối tượng bị hủy. Trên thực tế, phương thức này ngược lại với phương thức khởi tạo. Trong phương pháp này, có thể giải phóng các tài nguyên được sử dụng bởi một đối tượng. - Lớp Object có phương thức này nên lớp nào cũng có ( tất cả các lớp trong Java được coi là kế thừa từ lớp Object và chứa một bản sao các phương thức của nó ). Nếu bạn viết phương thức finalize() trong lớp của mình và nó sẽ được gọi trước khi các đối tượng của lớp này bị hủy. Ví dụ: Tầng cũ 06 - 13- Biết rồi. - Nhưng có một điều. Máy ảo Java tự quyết định có gọi phương thức này hay không.Thông thường, các đối tượng được tạo trong phương thức và được khai báo là rác sau khi thoát, sẽ bị hủy ngay lập tức và không có bất kỳ lệnh gọi nào của phương thức finalize(). Phương pháp này là một công cụ kiểm soát khác đối với phân bổ tài nguyên bên ngoài (ngoài JVM). Bạn nên giải phóng tất cả các tài nguyên bên ngoài đã sử dụng và đặt lại các tham chiếu đã lưu trữ khi bạn muốn hủy đối tượng. Tôi sẽ cho bạn biết về những ưu điểm của phương pháp này và chi tiết về công việc của nó ở 10 hoặc 20 cấp độ. Trong khi chờ đợi, bạn nên biết hai điều: phương thức như vậy tồn tại và ( thật bất ngờ! ) không phải lúc nào nó cũng được gọi.

4 Elly, Đối tượng trọn đời

- Tôi cũng muốn nói với bạn một vài điều thú vị về thời gian tồn tại của đối tượng. Trong Java, rất khó để mất đối tượng một cách tình cờ; nếu bạn có một tham chiếu đối tượng, điều đó có nghĩa là đối tượng đó chắc chắn còn sống. - Bên trong một tham chiếu đối tượng lưu trữ một số – địa chỉ của đối tượng này trong bộ nhớ. Bạn không thể thay đổi con số đó, tăng hoặc giảm nó. Bạn không thể tạo một tham chiếu khi bạn chỉ có địa chỉ trong bộ nhớ. Bạn chỉ có thể tạo một đối tượng mới và gán tham chiếu của nó cho một biến. Đây là cách duy nhất để có được một tài liệu tham khảo mới. - Tôi hiểu rồi. Nghĩa là, nếu tôi đặt thành null (xóa) tất cả các tham chiếu đối tượng, tôi sẽ không bao giờ lấy được tham chiếu đối tượng và truy cập nó? - Chuẩn rồi. Nhưng thường thì điều ngược lại là đúng - có quá nhiều đối tượng trực tiếp không được sử dụng.Hầu hết các chương trình tạo hàng chục đối tượng và lưu trữ chúng trong các danh sách khác nhau khi chạy, nhưng không bao giờ xóa các danh sách đó. - Hầu hết, các lập trình viên gắn nhãn các đối tượng không mong muốn là “đã xóa”, vậy thôi. Không ai quan tâm đến việc loại bỏ chúng khỏi danh sách. Vì vậy, các chương trình Java lớn có xu hướng phình to - ngày càng có nhiều đối tượng không được sử dụng vẫn tồn tại trong bộ nhớ. - Đó là tất cả. Trong tương lai, tôi sẽ luôn thu hút sự chú ý của bạn đến những đồ vật không sử dụng và cách xử lý chúng đúng cách. - ОK, cảm ơn. Bạn đã làm sáng tỏ một vài điều về các tài liệu tham khảo.

5 Diego, Nhiệm vụ vòng đời đối tượng

- Này, Amigo! Đây là một vài nhiệm vụ dành cho bạn:
nhiệm vụ
1 1. Phương thức finalize() của lớp Cat
Viết phương thức protected void finalize() throws Throwable trong lớp Cat
3 2. Các lớp Cat and Dog và phương thức finalize() cho mỗi lớp
Trong mỗi lớp Cat and Dog hãy viết một phương thức finalize() , phương thức này hiển thị ra màn hình một thông báo rằng đối tượng bị hủy.
3 3. 50.000 đối tượng của lớp Cat và 50.000 đối tượng của lớp Dog
Tạo trong một vòng lặp 50.000 đối tượng của lớp Cat và 50.000 đối tượng của lớp Dog. (Máy ảo Java sẽ hủy các đối tượng không sử dụng, vì vậy phương thức finalize() sẽ được gọi ít nhất một lần).
4 4. Bộ đếm mèo
Trong hàm tạo lớp Cat [public Cat()], tăng bộ đếm mèo (biến tĩnh catCount của cùng một lớp) lên 1. Trong phương thức finalize() giảm 1.

6 Elly, Các lớp và phương thức tĩnh

- Đây là một chủ đề thú vị mới. Tôi muốn nói với bạn về các biến và phương thức tĩnh. - Ồ, tôi đã nghe nói về các biến tĩnh. Về các phương thức tĩnh, tôi đoán vậy. Nhưng tôi muốn biết thêm chi tiết. - Khi khai báo các biến trong một lớp, chúng ta xác định xem các biến này được tạo trong một thể hiện dùng chung duy nhất hay có cần tạo các bản sao của chúng cho từng đối tượng hay không. Theo mặc định, một bản sao mới của biến lớp được tạo cho mỗi đối tượng của lớp này. Đây là giao diện của nó: Tầng cũ 06 - 14- Mặc dù các biến cat1.namecat2.name được khai báo trong cùng một lớp - Cat, chúng lưu trữ các giá trị khác nhau vì chúng được liên kết với các đối tượng khác nhau. - Rõ ràng. - Một biến tĩnh tồn tại trong một thể hiện duy nhất; bạn cần truy cập nó bằng cách sử dụng tên lớp: Tầng cũ 06 - 15- Cũng rõ ràng rồi. - Các phương thức của lớp cũng được chia thành hai loại. Các phương thức thông thường được gọi trên đối tượng và có quyền truy cập vào dữ liệu của đối tượng này. Các phương thức tĩnh không có quyền truy cập như vậy , bởi vì chúng không có tham chiếu đối tượng. Các phương thức tĩnh có thể truy cập biến tĩnh của lớp này hoặc các phương thức tĩnh khác. - Các phương thức tĩnh không thể truy cập các phương thức không tĩnh hoặc các biến không tĩnh! - Tại sao như vậy? - Mọi biến lớp thông thường được đặt bên trong một đối tượng. Bất kỳ phương thức nào cũng chỉ có thể truy cập biến đó khi nó có tham chiếu đến đối tượng đó. Tham chiếu như vậy không được chuyển sang phương thức tĩnh. - Còn phương pháp thông thường thì sao? - Đối với phương thức thông thường được truyền tham chiếu ẩn tới đối tượng mà phương thức này được gọi. Biến lưu trữ tham chiếu này được gọi là this . Do đó, phương thức luôn có thể lấy dữ liệu của chính đối tượng của nó hoặc gọi một phương thức không tĩnh khác của cùng một đối tượng. - Một null được truyền cho một phương thức tĩnh thay vì một tham chiếu đối tượng. Do đó, một phương thức tĩnh không thể truy cập các biến và phương thức không tĩnh - nó không có tham chiếu đến đối tượng mà chúng bị ràng buộc. - Tôi hiểu rồi. - Đó là cách hoạt động của các phương thức không tĩnh thông thường: Tầng cũ 06 - 16- Và đó là cách hoạt động của các phương thức tĩnh: Tầng cũ 06 - 17- Một biến hoặc một phương thức là tĩnh nếu chúng được khai báo với từ khóa tĩnh. - Và những phương pháp như vậy có ích lợi gì nếu chúng quá hạn chế? - Cách làm này cũng có cái lợi của nó. - Trước tiên, bạn không cần chuyển bất kỳ tham chiếu đối tượng nào để truy cập các phương thức và biến tĩnh . - Thứ hai, đôi khi cần thiết biến đó là độc nhất vô nhị . Ví dụ như biến System.out (biến tĩnh ngoài lớp System). - Và thứ ba, đôi khi cần phải gọi một phương thức trước khi bạn có thể tạo bất kỳ đối tượng nào . - Vào dịp nào? - Bạn nghĩ tại sao phương thức main được khai báo là tĩnh? Để gọi nó ngay sau khi lớp được tải vào bộ nhớ trước khi có thể tạo bất kỳ đối tượng nào.

7 Risha, Các lớp và phương thức tĩnh

- Ngoài các phương thức tĩnh còn có các lớp tĩnh . Chúng ta sẽ xem xét trường hợp này sau, tôi sẽ chỉ cho bạn một ví dụ về nó: Tầng cũ 06 - 18- Bạn có thể tạo bao nhiêu đối tượng của lớp Cat tùy thích. Không giống như một biến tĩnh, tồn tại trong một thể hiện duy nhất. - Mục đích chính của công cụ sửa đổi tĩnh trước khi khai báo lớp là để duy trì mối quan hệ giữa lớp Cat và lớp StaticClassExample . Nói chung, lớp Cat không bị ràng buộc (không có tham chiếu ẩn) với đối tượng StaticClassExample và không thể truy cập vào các biến StaticClassExample thông thường (không tĩnh). - Vậy tôi có thể tạo các lớp bên trong các lớp khác không? - Chuẩn rồi. Java làm cho điều này có thể. Bây giờ, đừng nghĩ về nó quá nhiều. Sau này tôi sẽ giải thích một số điều khác, và mọi thứ sẽ trở nên dễ dàng hơn một chút. - Tôi cũng mong là như vậy.

8 Diego, Nhiệm vụ trên phương thức tĩnh

- Này, Amigo! Dưới đây là một số tác vụ thú vị trên các phương thức tĩnh:
nhiệm vụ
1 1. Lớp Cat và biến tĩnh catCount
Viết một biến tĩnh int catCount trong lớp Cat. Tạo một hàm tạo [ public Cat() ], trong đó biến đã cho sẽ được tăng thêm 1.
2 2. Các phương thức tĩnh: int getCatCount() và setCatCount(int)
Thêm hai phương thức tĩnh vào lớp Cat: int getCatCount( ) và setCatCount(int) sử dụng để lấy/thay đổi số lượng mèo (biến catCount)
3 3. Sử dụng lớp
Triển khai phương thức tĩnh double getDistance(x1, y1, x2, y2) . Nó sẽ tính toán khoảng cách giữa các điểm. Sử dụng phương thức double Math.sqrt(double a) để tính căn bậc hai của tham số truyền vào
4 4. Lớp ConsoleReader
Viết một lớp ConsoleReader, lớp này sẽ có 4 phương thức tĩnh:
- String readString() để đọc chuỗi từ bàn phím
- int readInt() để đọc số từ bàn phím
- double readDouble() để đọc số phân số từ bàn phím
- void readLn () để chờ nhấn enter [dùng readString()]
5 5. Lớp StringHelper
Viết một lớp StringHelper, lớp này sẽ có 2 phương thức tĩnh:
- Chuỗi multi(String s, int count) sẽ trả về số lần lặp lại của chuỗi s.
- Chuỗi nhân(Chuỗi s) sẽ trả về chuỗi s được lặp lại 5 lần.

Ví dụ:
Amigo → AmigoAmigoAmigoAmigoAmigo

9 Giáo sư, phạm vi tĩnh và thời gian tồn tại của đối tượng

Tầng cũ 06 - 19- Lại là tôi đây. Thật không may, tôi không thể cung cấp cho bạn bất kỳ liên kết ngày hôm nay. Những bài giảng tuyệt vời đó bị thất lạc ở đâu đó. Tôi sợ hôm nay bạn phải làm một mình. Nhưng tốt hơn hết bạn nên lắng nghe Elly và Risha nhiều hơn, họ luôn có thể dạy cho bạn điều gì đó. Tuy nhiên, hãy thử cái này: Vòng đời đối tượng

10 tháng 7

- Này, Amigo! Bạn đã làm một công việc tuyệt vời ngày hôm nay. Đó là lý do tại sao tôi không thể cho bạn nhiều hơn nữa. Nào, ngồi xuống, chương trình bắt đầu:

11 Đội Trưởng Sóc

- Chào chú bộ đội! - Chào buổi sáng thưa ngài! - Tôi có một số tin tuyệt vời cho bạn. Đây là một kiểm tra nhanh để củng cố kỹ năng của bạn. Làm điều đó mỗi ngày và bạn sẽ nâng cao kỹ năng của mình nhanh chóng. Các tác vụ được thiết kế đặc biệt để thực hiện trong Intellij IDEA.
Các tác vụ bổ sung cần thực hiện trong Intellij Idea
1 Lớp Cat và biến tĩnh catCount
Viết một biến tĩnh public int catCount trong lớp Cat. Tạo một hàm tạo [public Cat()]. Hãy để biến tĩnh catCount tăng lên 1 mỗi khi bạn tạo một con mèo (một đối tượng mới Cat). Tạo 10 đối tượng Cat và hiển thị giá trị của biến catCount .
2 2. Mèo tĩnh
  1. Thêm một biến tĩnh công khai cats (ArrayList<Cat>) trong lớp Cat.
  2. Mỗi khi bạn tạo một con mèo (một đối tượng mới Cat), hãy để con mèo mới này được thêm vào biến cats . Tạo 10 đối tượng Cat.
  3. Phương thức printCats() sẽ hiển thị tất cả các con mèo. Bạn cần sử dụng biến cats trong phương thức.
Mẹo:
Để tạo biến mèo , hãy sử dụng dòng mã:
public static ArrayList<Cat> cats = new ArrayList<Cat>();
3 3. Di chuyển một công cụ sửa đổi tĩnh
Di chuyển một công cụ sửa đổi tĩnh để mã biên dịch.
4 4. Số lượng từ khóa tĩnh tối thiểu
Thêm số lượng từ khóa tĩnh tối thiểu để mã được biên dịch và chương trình hoàn tất thành công.
5 5. Có ý tưởng mới nào không? Nghĩ thử xem...
  1. Viết một lớp tĩnh công khai Ý tưởng trong lớp Giải pháp
  2. Viết một phương thức public String getDescrip() trong lớp Idea để trả về bất kỳ thông báo nào không trống
  3. Trong lớp Giải pháp tạo một phương thức tĩnh public void printIdea(Idea idea) để hiển thị mô tả về ý tưởng - đó là những gì phương thức getDescrip() trả về
6 6. KissMyShinyMetalAss
Viết một lớp có tên KissMyShinyMetalAss. Tạo một đối tượng của lớp này, sau đó hiển thị nó ra màn hình.
7 7. Ba biến tĩnh tên
Viết 3 biến tĩnh công khai: String Solution.name , String Cat.name , String Dog.name
Bình luận
  • Phổ biến
  • Mới
Bạn phải đăng nhập để đăng nhận xet
Trang này chưa có bất kỳ bình luận nào