thời gian chạy Java. Sự khác biệt giữa JDK và JRE là gì? JRE là gì

Tôi nghĩ sẽ không có gì bí mật với bạn rằng việc phát triển hầu hết các ứng dụng cho nền tảng di động Android được thực hiện chủ yếu bằng ngôn ngữ Java. Để tạo các ứng dụng bằng Java, cần có phần mềm đặc biệt. Các phiên bản mới nhất của phần mềm này luôn có thể được tải xuống từ trang web của nhà phát triển, oracle.com. Phần mềm này bao gồm các công cụ như và.

JRE (Môi trường chạy thi hành Java) là một công cụ đại diện cho môi trường thời gian chạy - một triển khai tối thiểu của một máy ảo trong đó mã Java được khởi chạy và thực thi. là một công cụ đại diện cho toàn bộ bộ công cụ, một bộ công cụ phát triển ứng dụng bằng ngôn ngữ Java. Trên thực tế, JRE được bao gồm trong JDK, cũng như nhiều thư viện lớp Java tiêu chuẩn khác, trình biên dịch javac, tài liệu, ví dụ mã và nhiều tiện ích tiện ích khác nhau. Toàn bộ bộ này được phân phối miễn phí và có phiên bản dành cho các hệ điều hành khác nhau nên bất kỳ ai có nhu cầu đều có thể tải xuống và sử dụng.

JDK không bao gồm môi trường phát triển tích hợp và dự kiến ​​sẽ được nhà phát triển cài đặt riêng. Có rất nhiều IDE để phát triển Java, ví dụ: IntelliJ IDEA, Borland JBuilder, NetBeans, v.v. Để phát triển ứng dụng cho Android, chúng tôi chọn Eclipse IDE.

Cách cài đặt JDK. Để cài đặt JDK, bạn cần truy cập oracle.com, chọn tab Tải xuống, sau đó chọn JAVA dành cho nhà phát triển. Hoặc tải xuống từ đây: dành cho Windows x32 - kích thước tệp JDK-7u40-Windows-i586.exe - 123,46 Mb. Đối với Windows x64 - kích thước tệp JDK-7u40-Windows-x64.exe - 125,25 Mb.

Sau khi đã tải xuống JDK mà bạn cần, hãy chạy tệp đã tải xuống và sau một lúc chờ đợi, bạn sẽ thấy màn hình bắt đầu để cài đặt. Nhấp chuột " Kế tiếp”.

Trên màn hình tiếp theo, bạn sẽ được nhắc về thư mục cài đặt. Nhấp chuột " Kế tiếp" để cài đặt vào thư mục mặc định hoặc nhấn vào nút “ Thay đổi...” và chọn thư mục của bạn. Hãy nhớ đường dẫn đến thư mục mà bạn đã cài đặt JDK, nó được đánh dấu màu đỏ trong hình:

Khi cài đặt Bộ công cụ phát triển Java (JDK) gần như đã hoàn tất, một biểu mẫu sẽ xuất hiện trong đó bạn sẽ được yêu cầu cài đặt JRE (Môi trường chạy thi hành Java), cài đặt. Không cần thay đổi thư mục cài đặt - nhấp vào “ Kế tiếp”.

Trong một thời gian, bạn sẽ thấy màn hình có thông báo sau (3 tỷ thiết bị sử dụng Java):

Sau đó bạn sẽ thấy quá trình cài đặt đã kết thúc:

Tại thời điểm này, quá trình cài đặt gần như hoàn tất. Nhưng còn một bước nữa cần thực hiện - đăng ký đường dẫn đến tệp JDK trong đường dẫn hệ điều hành. Điều này sẽ cho phép chúng tôi chạy các tệp chính từ dòng lệnh. Và chúng tôi cũng sẽ đặt biến JAVA_HOME. Trên hệ điều hành Windows 7, việc này được thực hiện như sau: Trong menu “ Bắt đầu"tìm đồ vật" Máy tính” và nhấp chuột phải vào nó. Một menu sẽ xuất hiện, chọn “ Của cải" Một cửa sổ sẽ xuất hiện:

Chọn mục “ Thiết lập hệ thống nâng cao" Một cửa sổ sẽ xuất hiện trong đó chúng tôi chọn mục “ Biến môi trường”.

Trong cửa sổ xuất hiện, bạn cần tạo một biến – “ JAVA_HOME" Và chỉnh sửa biến “ Con đường" Để thực hiện việc này, hãy nhấp vào “ Tạo nên”.

Tùy chọn để đặt biến “ JAVA_HOME” được thể hiện trong hình. Đây là lúc dòng tôi khuyên bạn nên nhớ khi cài đặt JDK trở nên hữu ích.

Đặt biến “ Con đường“Rất có thể không cần phải tạo nó - nó thường đã tồn tại rồi. Nếu không, thì trong danh sách các biến hệ thống, chúng ta tìm biến “ Con đường» bấm vào đó, nhập thêm đường dẫn vào đó C:\Tệp chương trình\Java\jdk1.7.0_07\bin và nhấp vào " ĐƯỢC RỒI"(hãy cẩn thận - ở đây bạn cần nhập một dòng sau khi đặt " ; ” ở cuối danh sách tất cả các đường dẫn và bạn cũng cần thêm dòng “ \thùng rác" sau đó.



Những môi trường tích hợp Java nào tồn tại ngày nay? Môi trường chạy thi hành Java (JRE) là cách triển khai tối thiểu một máy ảo cần thiết để chạy các ứng dụng Java mà không cần trình biên dịch và các công cụ phát triển khác. Nó bao gồm một máy ảo - Máy ảo Java và thư viện lớp Java JRF được phân phối miễn phí và có thể. được tải xuống từ hầu hết các nền tảng trang web của Oracle. Các công cụ phát triển cùng với JRE được bao gồm trong JDK. Ngày nay, có ba IDE chính để phát triển trong Java: Eclipse, NetBeans và Intellij IDEA. Việc chọn cho mình môi trường phát triển nào thuận tiện nhất không phải là một nhiệm vụ dễ dàng. Và sự lựa chọn này có thể thay đổi theo thời gian. Bản phân phối NetBeans hoàn chỉnh hỗ trợ Java (SE,ME,EE,Card,FX), C/C++,Groovy, PHP,HTML5. Các khả năng của IDE này rất ấn tượng: có hỗ trợ ngay lập tức cho JavaEE, Spring Framework, Hibernate, OSGL, Maven, kiểm tra đơn vị, khả năng phát triển ứng dụng máy tính để bàn trên nền tảng NetBeans và sử dụng các dịch vụ đám mây. Một lợi thế riêng biệt là việc hỗ trợ các phiên bản mới của thông số kỹ thuật có trong JavaEE ban đầu xuất hiện trong NetBeans. Ưu điểm chính của Eclipse là khả năng mở rộng của nó, một cộng đồng khổng lồ phát triển số lượng lớn các plugin và tiện ích mở rộng cũng như hỗ trợ hầu hết tất cả các công nghệ liên quan đến Java. Về bản chất, Eclipse là một IDE rất nặng và có thể làm việc thoải mái với nó bắt đầu từ phiên bản Juno. Ý tưởng Intellij. IDE thương mại nổi tiếng nhất để phát triển Java. IDE đi kèm với một số lượng lớn các tiện ích mở rộng bổ sung hỗ trợ cho hầu hết các công nghệ Java phổ biến và hơn thế nữa.

Nguyên lý lập trình hướng đối tượng(trừu tượng, phân cấp, trách nhiệm, mô đun)

Nguyên tắc hướng đối tượng lập trình. Lập trình hướng đối tượng đã được phát triển trong hơn hai mươi năm. Có một số trường phái, mỗi trường đưa ra một bộ nguyên tắc riêng để làm việc với các đối tượng và trình bày những nguyên tắc này theo cách riêng của mình. Nhưng có một số khái niệm được chấp nhận rộng rãi. Hãy liệt kê chúng. Trừu tượng Chúng ta phải trừu tượng từ một số chi tiết cụ thể của đối tượng. Điều rất quan trọng là chọn mức độ trừu tượng phù hợp. Khi mô tả hành vi của một đối tượng, chẳng hạn như một chiếc ô tô, chúng ta xây dựng một mô hình về nó. Mỗi mô hình được mô tả dưới dạng một hoặc nhiều các lớp học(các lớp học). Một lớp có thể được coi là một dự án, một dàn diễn viên, một bản vẽ, theo đó các đối tượng cụ thể sẽ được tạo ra. Lớp này chứa mô tả về các biến và hằng đặc trưng cho đối tượng. Họ đã gọi trường lớp(trường lớp). Các thủ tục mô tả hành vi của một đối tượng được gọi là phương pháp lớp học(phương thức lớp). Bên trong một lớp học bạn có thể mô tả và các lớp lồng nhau(các lớp lồng nhau) và các giao diện lồng nhau. Các trường, phương thức và các lớp cấp một lồng nhau được thành viên trong lớp(các thành viên trong lớp). Các trường phái lập trình hướng đối tượng khác nhau đưa ra các thuật ngữ khác nhau, chúng tôi sử dụng thuật ngữ được áp dụng trong công nghệ Java. Dưới đây là bản phác thảo mô tả chiếc xe:

lớp Ôtô(

int maxVelocity; // Trường chứa tốc độ cao nhất của ô tô

tốc độ int; // Trường chứa tốc độ hiện tại của ô tô

trọng lượng int; // Trường chứa trọng lượng của ô tô

// Các lĩnh vực khác...

void moveTo(int x, int y)( // Phương thức mô phỏng chuyển động

// xe hơi. Tham số x và y không phải là trường

int a = 1; // Biến cục bộ không phải là một trường

// Thân phương thức. Luật được mô tả ở đây

// di chuyển xe đến điểm (x, y)

// Các phương pháp khác. . .

Hệ thống cấp bậc. Hệ thống phân cấp của các đối tượng từ lâu đã được sử dụng để phân loại chúng. Nó được thực hiện một cách chi tiết trong sinh học. Mọi người đều quen thuộc với họ, chi và loài. Chúng ta có thể mô tả thú cưng của mình: mèo, chó, bò và những vật nuôi khác như sau:

class Pet( // Ở đây chúng tôi mô tả các thuộc tính chung của tất cả thú cưng

Người chủ; // Chủ động vật

int cân nặng, tuổi, eatTimel]; // Cân nặng, tuổi, thời gian cho ăn

int eat(int food, int Drink, int time)( // Quá trình cho ăn

// Hành động ban đầu...

if (thời gian == eatTimefi]) user.getFood(đồ ăn, đồ uống);

// Phương pháp tiêu thụ thực phẩm

giọng nói trống rỗng(); // Âm thanh do động vật tạo ra

// Khác...

Sau đó, chúng ta tạo các lớp mô tả các đối tượng cụ thể hơn, liên kết chúng với một lớp chung:

class Cat mở rộng Pet( // Mô tả các thuộc tính duy nhất của mèo:

int mouseBắt; // số chuột bắt được

void toMouse(); // quá trình bắt chuột

// Các tài sản khác

lớp Dog mở rộng Pet( // Thuộc tính của Dog:

làm mất hiệu lực bảo quản(); // bảo vệ

Lưu ý rằng chúng ta không lặp lại các thuộc tính chung được mô tả trong lớp Pet. Chúng được kế thừa tự động. Chúng ta có thể định nghĩa một đối tượng của lớp Dog và sử dụng tất cả các thuộc tính của lớp Pet trong đó như thể chúng được định nghĩa trong lớp Dog:

Chó tuzik = Chó mới(), sharik = Chó mới();

Sau định nghĩa này có thể viết

int p = sharik.eat(30, 10, 12);

Và tiếp tục phân loại như thế này:

class Pointer mở rộng Dog( ... ) // Thuộc tính của giống Pointer

class Setter kế thừa Dog( ... ) // thuộc tính Setter

Trách nhiệm. Ví dụ của chúng tôi chỉ xem xét tương tác cho ăn được mô tả bằng phương thức eat(). Trong phương thức này, con vật yêu cầu chủ nhân của nó sử dụng phương thức getFood() Vì vậy, đối tượng sharik, khi thực thi phương thức eat() của nó, sẽ gửi một thông báo đến đối tượng được tham chiếu trong biến người để yêu cầu một lượng thức ăn nhất định. uống. Tin nhắn được viết ở dòng user.getFood(food, Drink). Tin nhắn này là Hợp đồng(hợp đồng) giữa các đối tượng, bản chất của nó là đối tượng mà sharik đảm nhận trách nhiệm(trách nhiệm) đặt các tham số chính xác trong tin nhắn và đối tượng - giá trị hiện tại của người - giả định trách nhiệmáp dụng phương pháp cho ăn getFood(), bất kể đó là phương pháp nào. Để thực hiện đúng nguyên tắc trách nhiệm, nguyên tắc thứ tư của lập trình hướng đối tượng được áp dụng - tính mô-đun(tính mô-đun)

Tính mô đun Nguyên tắc này nêu rõ rằng mỗi lớp nên tạo thành một mô-đun riêng biệt. Các thành viên của một lớp không có mục đích truy cập từ bên ngoài phải được đóng gói. Trong Java, việc đóng gói đạt được bằng cách thêm công cụ sửa đổi riêng tư vào phần khai báo của thành viên lớp. Ví dụ:

chuột int riêng bị bắt;

tên chuỗi riêng tư;

bảo tồn khoảng trống riêng tư();

Những thành viên trong lớp này trở thành đóng cửa, chúng chỉ có thể được sử dụng bởi các phiên bản của cùng một lớp, ví dụ: tuzik có thể đưa ra lệnh sharik.preserve(). Và nếu trong lớp Master chúng ta viết riêng void getFood(int food, int Drink); thì phương thức getFood() sẽ không được tìm thấy và sharik không may sẽ không thể lấy được thức ăn. Ngược lại với việc đóng, chúng ta có thể khai báo một số thành viên của một lớp mở, bằng cách viết từ bổ nghĩa công khai thay vì từ riêng tư, ví dụ: public void getFood(int food, int Drink); Các thành viên như vậy có thể được truy cập bởi bất kỳ đối tượng nào của bất kỳ lớp nào.

Cách phân loại các kiểu dữ liệu Java 2.

Java định nghĩa hai loại dữ liệu:

 các kiểu nguyên thủy;

 các kiểu tham chiếu.

Ngoài ra còn có một loại null đặc biệt, loại biểu thức null, không có tên.

Kiểu nguyên thủy được chia thành kiểu Boolean và kiểu số. Ngược lại, kiểu số là kiểu số nguyên (byte, short, int, long và char) và kiểu thực (float và double). Kiểu tham chiếu là kiểu lớp, giao diện và mảng.

Khai báo biến trong Java trông như thế này:

định danh biến tên loại;

Ví dụ:

Nếu có nhiều biến cùng loại, chúng có thể được khai báo trong một câu bằng cách liệt kê các mã định danh biến được phân tách bằng dấu phẩy:

tên loại biến-định danh-1,biến-định danh-2,;

Ví dụ:

Các quy ước mã hóa khuyên bạn nên bắt đầu định danh biến bằng một chữ cái viết thường. Nếu tên biến bao gồm một số từ, thì tất cả chúng đều được viết cùng nhau và mỗi từ, ngoại trừ từ đầu tiên, bắt đầu bằng chữ in hoa, ví dụ:

giá trị đầu vào gấp đôi;

Biến là dấu hiệu cho biết giá trị của biến được lưu trữ trong bộ nhớ. Một biến thuộc loại nguyên thủy luôn giữ giá trị của một biến thuộc loại được chỉ định (ví dụ: int), trong khi biến thuộc loại tham chiếu lưu trữ một tham chiếu (địa chỉ) của một đối tượng thuộc loại đã chỉ định.

Bạn có thể tạo các biến mới ở bất cứ đâu trong chương trình.

Loại logic và các phép toán với chúng (các phép toán so sánh và gán, các phép toán logic, các phép toán logic viết tắt)

JavaScript có các loại hoạt động sau: Thao tác phân công gán cho toán hạng bên trái một giá trị dựa trên toán hạng bên phải. Toán tử gán cơ bản là dấu bằng (=), gán giá trị cho toán hạng bên trái cho giá trị của toán hạng bên phải. Tức là x = y gán giá trị y cho biến x.

Viết tắt Nghĩa
x += y x = x + y
x -= y x = x – y
x *= y x = x * y
x/=y x = x/y
x %= y x = x %y
x<<= y x = x<< y
x >>= y x = x >> y
x >>>= y x = x >>> y
x &= y x = x & y
x^=y x = x^y
x |= y x = x | y

Thao tác so sánh so sánh các toán hạng và trả về giá trị Boolean dựa trên tính hợp lệ của phép so sánh. Toán hạng có thể là số, chuỗi, boolean và đối tượng. Các chuỗi được so sánh dựa trên thứ tự từ điển tiêu chuẩn sử dụng các giá trị Unicode.

Hoạt động Sự miêu tả Ví dụ trả về true
Bằng (==) Trả về true nếu toán hạng bằng nhau. Nếu các toán hạng thuộc các loại khác nhau, JavaScript sẽ cố gắng chuyển đổi các toán hạng thành một loại có thể so sánh được. 3 == var1 "3" == var1 3 == "3"
Không bằng (!=) Trả về true nếu toán hạng không bằng nhau. Nếu các toán hạng thuộc các loại khác nhau, JavaScript sẽ cố gắng chuyển đổi các toán hạng thành một loại có thể so sánh được. var1 != 4 var2 != "3"
Hoàn toàn bình đẳng (===) Trả về true nếu các toán hạng bằng nhau và cùng loại. 3 === var1
Hoàn toàn không bằng (!==) Trả về true nếu các toán hạng không bằng nhau và/hoặc không cùng loại. var1 !== "3" 3 !== "3"
Thêm (>) Trả về true nếu toán hạng bên trái lớn hơn toán hạng bên phải. var2 > var1
Lớn hơn hoặc bằng (>=) Trả về true nếu toán hạng bên trái lớn hơn hoặc bằng toán hạng bên phải. var2 >= var1 var1 >= 3
Ít hơn (<) Trả về true nếu toán hạng bên trái nhỏ hơn toán hạng bên phải. var1< var2
Nhỏ hơn hoặc bằng (<=) Trả về true nếu toán hạng bên trái nhỏ hơn hoặc bằng toán hạng bên phải.

Các phép toán logic thường được sử dụng với các giá trị Boolean; trong trường hợp này, giá trị Boolean được trả về. Tuy nhiên, && và || thực sự trả về giá trị của một trong các toán hạng đã chỉ định, vì vậy nếu các thao tác này được sử dụng trên các giá trị không phải Boolean, chúng có thể trả về giá trị không phải Boolean.

Hoạt động Cách sử dụng Sự miêu tả
&& expr1 && expr2 (Logic AND) Trả về expr1 nếu nó có thể được chuyển thành false; nếu không thì trả về expr2. Do đó, khi được sử dụng với các giá trị Boolean, && trả về true nếu cả hai toán hạng đều đúng; nếu không nó sẽ trả về sai.
|| expr1 || expr2 (Logic OR) Trả về expr1 nếu nó có thể được chuyển thành true; nếu không thì trả về expr2. Do đó, khi được sử dụng với các giá trị Boolean, || trả về true nếu ít nhất một trong các toán hạng là đúng; nếu cả hai toán hạng đều sai, trả về sai.
! !expr (NOolean NOT) Trả về false nếu toán hạng duy nhất của nó có thể được chuyển thành true; nếu không thì trả về true.

Vì các biểu thức Boolean được đánh giá từ trái sang phải nên chúng được kiểm tra xem liệu chúng có thể được thực thi hay không "viết tắt“Tính toán theo nguyên tắc sau:

SAI && bất cứ điều gì viết tắt là sai.

đúng || bất cứ điều gì viết tắt là đúng.

Các kiểu số nguyên và các phép toán đi kèm với chúng (số học, phép ép kiểu, phép so sánh, phép toán theo bit, phép dịch chuyển). Các phép tính toán học lấy các giá trị số (chữ hoặc biến) làm toán hạng và trả về một giá trị số duy nhất. Các phép toán số học tiêu chuẩn là cộng (+), trừ (-), nhân (*) và chia (/).

Hoạt động Sự miêu tả Ví dụ
% (Mô đun) Hoạt động nhị phân. Trả về số nguyên còn lại khi chia hai toán hạng. 12% 5 trả lại 2.
++ (Tăng) Hoạt động đơn nhất. Thêm 1 vào toán hạng. Nếu được sử dụng làm tiền tố (++x), hãy thêm một giá trị và trả về giá trị của toán hạng; nếu được sử dụng làm tiền tố (x++), trả về giá trị của toán hạng rồi cộng một giá trị. Nếu x là 3 thì ++x đặt x thành 4 và trả về 4; và x++ đặt x thành 4 và trả về 3.
-- (Giảm) Hoạt động đơn nhất. Trừ một từ toán hạng. Giá trị trả về giống như giá trị của thao tác tăng. Nếu x là 3 thì --x đặt x thành 2 và trả về 2; và x-- đặt x thành 2 và trả về 3.
- (Phủ định đơn phương) Hoạt động đơn nhất. Trả về toán hạng đã ký. Nếu x là -3 thì -x trả về 3.

Theo chiều bit các phép toán xử lý toán hạng của chúng như một tập hợp các số nhị phân 32 bit (số 0 và số 1), thay vì dưới dạng số thập phân, thập lục phân hoặc bát phân. Ví dụ: số thập phân 9 có biểu diễn nhị phân là 1001. Các phép toán bitwise được thực hiện trên biểu diễn nhị phân đó nhưng trả về các giá trị số JavaScript tiêu chuẩn.

Hoạt động Cách sử dụng Sự miêu tả
Theo bit VÀ Một & b Trả về 1 tại mọi vị trí bit trong đó các bit tương ứng của cả hai toán hạng là 1.
Theo bit HOẶC Một | b Trả về 1 tại mọi vị trí bit trong đó các bit tương ứng của một hoặc cả hai toán hạng là 1.
Bitwise độc ​​quyền HOẶC Một ^ b Trả về 1 tại mỗi vị trí bit trong đó các bit tương ứng của một toán hạng nhưng không phải cả hai toán hạng đều là 1.
Bitwise KHÔNG ~ Một Đảo ngược các bit của toán hạng.
Sang trái Một << b Dịch chuyển biểu diễn nhị phân của a x b bit sang trái, đệm phía bên phải bằng các số 0.

Hoạt động logic theo bit

Các toán hạng được chuyển đổi thành số nguyên 32 bit và được biểu thị dưới dạng một chuỗi bit (0 và số một).

Mỗi bit của toán hạng đầu tiên tương ứng với một bit ghép đôi của toán hạng thứ hai: bit đầu tiên với bit thứ nhất, bit thứ hai với bit thứ hai, v.v.

Phép toán được thực hiện trên mỗi cặp bit và kết quả được xây dựng theo bit. Ví dụ: biểu diễn nhị phân của 9 là 1001 và biểu diễn nhị phân của 15 là 1111. Vì vậy, nếu phép toán theo bit được áp dụng cho hai số này, kết quả sẽ như thế này:
15 & 9 bằng 9 (1111 & 1001 = 1001)

15 | 9 cho 15 (1111 | 1001 = 1111)

15^9 bằng 6 (1111^1001 = 0110) Hoạt động dịch chuyển bitwise có hai toán hạng: toán hạng đầu tiên là số lượng được dịch chuyển và toán hạng thứ hai chỉ định số vị trí bit mà toán hạng đầu tiên được dịch chuyển. Hướng dịch chuyển được điều khiển bởi thao tác được áp dụng

Kiểu dữ liệu thực và các thao tác với chúng. Có hai loại thực trong Java: float và double. Chúng được đặc trưng bởi độ sâu bit, phạm vi giá trị và độ chính xác biểu diễn, đáp ứng tiêu chuẩn IEEE 754-1985 với một số sửa đổi. Ba giá trị nữa được thêm vào số thực thông thường" 1. Vô cực dương, được biểu thị bằng hằng số POSITIVE_INFINITY và phát sinh khi một giá trị dương tràn, chẳng hạn như kết quả của phép nhân 3.0 * 6e307. 2. Âm vô cực NEGATIVE_INFINITY. 3. “Không phải số” được viết bằng hằng số NaN (Không phải số) và phát sinh khi một số thực chia cho 0 hoặc 0 được nhân với vô cực. Ví dụ về việc xác định loại thực:

phao x = 0,001, y = -34,789;

gấp đôi 21 = -16,2305, z2;

Vì tất cả các phép tính và so sánh số học đều áp dụng cho kiểu thực, nên giá trị số nguyên và giá trị thực có thể được trộn lẫn trong các phép tính. Trong trường hợp này, quy tắc truyền kiểu được bổ sung các điều kiện sau:

nếu trong một thao tác, một toán hạng có kiểu double thì toán hạng kia được chuyển thành kiểu double;

nếu một toán hạng thuộc kiểu float thì toán hạng kia sẽ được chuyển thành float;

mặt khác, quy tắc chuyển đổi số nguyên sẽ được áp dụng.

Hoạt động phân công. Hoạt động có điều kiện.Thao tác gán đơn giản(toán tử gán đơn giản) được viết bằng dấu bằng =, bên trái là một biến và bên phải là một biểu thức tương thích với loại biến: x = 3,5, y = 2 * (x - 0,567) / (x + 2), b = x< у, bb = х >= y && b. Thao tác gán hoạt động như sau: biểu thức sau dấu bằng được đánh giá và chuyển thành loại biến ở bên trái dấu bằng. Kết quả của hoạt động sẽ là giá trị giảm của phía bên phải. Thao tác gán còn có một tác dụng phụ nữa là biến bên trái nhận giá trị rút gọn của bên phải, giá trị cũ bị mất. Trong phép gán, vế trái và vế phải không bằng nhau; bạn không thể viết 3,5 = x. Sau phép toán x = y, biến x sẽ thay đổi, trở thành bằng y và sau y = x, y sẽ thay đổi. Ngoài thao tác gán đơn giản, còn có 11 thao tác khác hỗn hợp toán tử gán ghép: +=, -=, *=, /=, %=, &=, |=, ^=,<<=, >>= ; >>>=. Các ký tự được viết không có dấu cách; chúng không thể được sắp xếp lại.

Tất cả các phép gán ghép đều tuân theo cùng một mẫu:

X op = a e tương đương x = (kiểu x), tức là (x hoặc a).

Hãy nhớ lại rằng biến ind loại short được xác định bằng giá trị 1. Việc gán ind +=7.8 sẽ cho kết quả là số 8 và biến ind sẽ nhận cùng một giá trị. Thao tác này tương đương với thao tác gán đơn giản ind = (short)(ind + 7.8).

Trước khi gán, nếu cần, việc ép kiểu sẽ được thực hiện tự động. Đó là lý do tại sao:

b = b + 10; // Lỗi!

b += 10; // Phải!

Trước khi phép cộng b + 50, b được thăng cấp thành kiểu int, kết quả của phép cộng cũng sẽ có kiểu int và, trong trường hợp đầu tiên, không thể được gán cho biến b mà không có sự chuyển đổi kiểu rõ ràng. Trong trường hợp thứ hai, trước khi gán, kết quả của phép cộng sẽ được thu hẹp về loại byte.

Toán tử điều kiện là toán tử duy nhất trong JavaScript có ba toán hạng. Nó có thể đưa ra giá trị này hoặc giá trị khác dựa trên điều kiện. Cú pháp là:

tình trạng? giá trị1 : giá trị2
Nếu điều kiện đúng thì phép toán có giá trị val1. Ngược lại, giá trị là val2. Bạn có thể sử dụng toán tử có điều kiện ở bất kỳ nơi nào có thể sử dụng toán tử tiêu chuẩn.

Ví dụ,

trạng thái = (tuổi >= 18) ? "người lớn" : "nhỏ"

Câu lệnh này gán giá trị "người lớn" cho trạng thái biến nếu tuổi từ 19 trở lên. Ngược lại, trạng thái biến được gán giá trị "nhỏ".

20 câu trả lời

JRE- Cái này Thời gian chạy Java. Nó là gói chứa mọi thứ cần thiết để chạy một chương trình Java đã biên dịch, bao gồm Máy ảo Java (JVM), thư viện lớp Java, lệnh java và cơ sở hạ tầng khác. Tuy nhiên, nó không thể được sử dụng để tạo các chương trình mới.

JDK- Cái này Bộ phát triển Java, SDK đầy đủ tính năng dành cho Java. Nó có mọi thứ mà JRE có, cùng với trình biên dịch (javac) và các công cụ (như javadoc và jdb). Nó có khả năng tạo và biên dịch chương trình.

Thông thường, nếu bạn chỉ quan tâm đến việc chạy các chương trình Java trên máy tính của mình thì bạn chỉ cài đặt JRE. Đó là tất cả những gì bạn cần. Mặt khác, nếu bạn dự định học lập trình Java, thay vào đó bạn sẽ cần phải cài đặt JDK.

Đôi khi, ngay cả khi bạn không định phát triển Java trên máy tính của mình, bạn vẫn cần cài đặt JDK. Ví dụ: nếu bạn triển khai một ứng dụng web bằng JSP, về mặt kỹ thuật thì bạn chỉ đang chạy các chương trình Java trên máy chủ ứng dụng. Tại sao bạn cần JDK? Bởi vì máy chủ ứng dụng chuyển đổi các JSP thành các servlet Java và phải sử dụng JDK để biên dịch các servlet. Tôi chắc chắn sẽ có nhiều ví dụ hơn.

Câu trả lời ở trên (Pablo) rất chính xác. Đây chỉ là thông tin bổ sung.

JRE, như tên cho thấy, là môi trường. Về cơ bản đây là một tập hợp các thư mục chứa các tệp Java, ví dụ:

  • bin/ chứa các chương trình Java có thể thực thi được. Điều quan trọng nhất là java (và cho Windows cũng như javaw), chạy JVM. Ở đây còn có một số tiện ích khác, ví dụ như keytool và Policytool.
  • conf/ chứa các tệp cấu hình mà người dùng có thể chỉnh sửa dành cho các chuyên gia Java.
  • lib/ có một số lượng lớn các tệp hỗ trợ: một số tệp .jar, tệp cấu hình, tệp thuộc tính, phông chữ, bản dịch, chứng chỉ, v.v. - đây đều là những "đoạn cắt" Java. Điều quan trọng nhất là các mô-đun, một tệp chứa .class của Thư viện chuẩn Java.
  • Ở một mức độ nào đó, thư viện chuẩn Java phải gọi mã gốc. Vì mục đích này, JRE chứa một số .dll (Windows) hoặc .dylib (macOS) hoặc .so (Linux) trong bin/ hoặc lib/ với tệp nhị phân hệ thống được hỗ trợ.

JDK cũng là một tập hợp các thư mục. Đây là phiên bản mở rộng của JRE với một số bổ sung:

JDK là siêu bộ của JRE và chứa mọi thứ trong JRE, cùng với các công cụ như trình biên dịch và trình gỡ lỗi cần thiết để phát triển các ứng dụng và ứng dụng. JRE cung cấp các thư viện, Máy ảo Java (JVM) và các thành phần khác để chạy các applet và ứng dụng được viết bằng ngôn ngữ lập trình Java.

Theo cách nói của giáo dân: JDK là ông nội, JRE là cha và JVM là con trai của họ. [những thứ kia. JDK>JRE>JVM]

JDK = JRE + Công cụ phát triển/gỡ lỗi

JRE = Các lớp gói Java + JVM (ví dụ: util, math, lang, awt, swing, v.v.) Thư viện + thời gian chạy.

JVM = hệ thống nạp lớp + vùng dữ liệu thời gian chạy + công cụ thời gian chạy.

Nói cách khác, nếu bạn là một lập trình viên Java, bạn sẽ cần JDK trong hệ thống của mình và gói này cũng sẽ bao gồm JRE và JVM, nhưng nếu bạn là người dùng bình thường thích chơi trò chơi trực tuyến thì bạn sẽ chỉ cần JRE và cái này gói sẽ không có JDK trong đó.

Máy ảo Java (JVM) là một máy ảo chạy mã byte Java. JVM không hiểu mã nguồn Java, vì vậy bạn biên dịch các tệp *.java của mình để tạo ra các tệp *.class chứa mã byte mà JVM có thể hiểu được. Đó cũng là bản chất cho phép Java trở thành một “ngôn ngữ di động” (viết một lần, chạy mọi nơi). Thật vậy, có các cách triển khai JVM cụ thể cho các hệ thống khác nhau (Windows, Linux, MacOS, xem danh sách Wikipedia...), mục tiêu là với cùng một mã byte, chúng đều tạo ra kết quả giống nhau.

JDK và JRE

Để giải thích sự khác biệt giữa JDK và JRE, tốt nhất bạn nên đọc tài liệu của Oracle và tham khảo sơ đồ:

Môi trường chạy thi hành Java (JRE)

Môi trường chạy thi hành Java (JRE) cung cấp các thư viện, máy ảo Java và các thành phần khác để chạy các applet và ứng dụng được viết bằng ngôn ngữ lập trình Java. Ngoài ra, JRE còn bao gồm hai công nghệ triển khai chính: plugin Java cho phép các applet chạy trong các trình duyệt phổ biến; và Java Web Start, triển khai các ứng dụng độc lập qua mạng. Nó cũng là nền tảng cho các công nghệ trong Nền tảng Java 2, Phiên bản doanh nghiệp (J2EE) để phát triển và triển khai phần mềm doanh nghiệp. JRE không chứa các công cụ hoặc tiện ích như trình biên dịch hoặc trình gỡ lỗi để phát triển các ứng dụng và ứng dụng.

Bộ công cụ phát triển Java (JDK)

JDK là siêu bộ của JRE và chứa mọi thứ trong JRE, cùng với các công cụ như trình biên dịch và trình gỡ lỗi cần thiết để phát triển các ứng dụng và ứng dụng nhỏ.

Xin lưu ý rằng Oracle không phải là người duy nhất cung cấp JDK.

Từ trang web java chính thức...

JRE (Môi trường chạy thi hành Java):

  • Nó là một triển khai của máy ảo Java* thực sự chạy các chương trình Java.
  • Môi trường chạy thi hành Java là một plugin cần thiết để chạy các chương trình Java.
  • JRE nhỏ hơn JDK nên cần ít dung lượng ổ đĩa hơn.
  • JRE có thể được tải xuống/hỗ trợ miễn phí https://www.java.com
  • Nó bao gồm JVM, Core và các thành phần bổ sung khác để chạy các ứng dụng và ứng dụng nhỏ được viết bằng Java.

JDK (Bộ công cụ phát triển Java)

Một điểm khác biệt từ quan điểm gỡ lỗi:

Để gỡ lỗi trong các lớp hệ thống Java như String và ArrayList, bạn cần một phiên bản đặc biệt của JRE được biên dịch với "thông tin gỡ lỗi". JRE đi kèm với JDK cung cấp thông tin này, nhưng JRE thông thường thì không. JRE thông thường không bao gồm thông tin này để mang lại hiệu suất tốt hơn.

Thông tin gỡ lỗi là gì? Đây là một lời giải thích ngắn được lấy từ bài đăng trên blog này:

Các trình biên dịch hiện đại thực hiện khá tốt công việc chuyển đổi mã cấp cao của bạn, với các cấu trúc điều khiển lồng nhau và trì hoãn đẹp mắt cũng như các biến được nhập tùy ý, thành một nhóm bit lớn gọi là mã máy (hoặc mã byte trong trường hợp Java), mục đích duy nhất trong đó phải chạy nhanh nhất có thể trên CPU đích (bộ xử lý ảo của JVM của bạn). Mã Java được chuyển đổi thành nhiều hướng dẫn mã máy. Các biến được di chuyển khắp nơi - trên ngăn xếp, trong sổ đăng ký hoặc được tối ưu hóa hoàn toàn. Các cấu trúc và đối tượng thậm chí không tồn tại trong mã kết quả - chúng chỉ là một bản tóm tắt được dịch thành các phần bù được mã hóa cứng vào bộ nhớ đệm.

Vậy làm thế nào để trình gỡ lỗi biết điểm dừng khi bạn yêu cầu nó chia nhỏ nội dung ghi trên một số chức năng? Làm thế nào bạn có thể tìm thấy những gì sẽ hiển thị cho bạn khi bạn gán cho nó giá trị của một biến? Câu trả lời là thông tin gỡ lỗi.

Thông tin gỡ lỗi được trình biên dịch tạo ra cùng với mã máy. Nó thể hiện mối quan hệ giữa chương trình thực thi và mã nguồn gốc. Thông tin này được mã hóa thành định dạng xác định trước và được lưu trữ cùng với mã máy. Nhiều định dạng trong số này đã được phát minh qua nhiều năm cho các nền tảng và tệp thực thi khác nhau.

JRE là từ viết tắt của Java Runtime Environment. Nó được sử dụng để cung cấp môi trường thời gian chạy. Nó là một triển khai của JVM. Nó tồn tại về mặt vật lý. Nó chứa một tập hợp các thư viện và các tệp khác mà JVM sử dụng trong quá trình thực thi.

JDK là từ viết tắt của Bộ công cụ phát triển Java. Anh ấy tồn tại về mặt vật lý. Nó chứa các công cụ phát triển JRE+.

Thông thường, khi bạn chỉ quan tâm đến việc chạy các chương trình Java trên trình duyệt hoặc máy tính thì bạn sẽ chỉ cài đặt JRE. Đó là tất cả những gì bạn cần. Mặt khác, nếu bạn dự định thực hiện một số chương trình Java, bạn cũng sẽ cần JDK.

JVM, JRE và JDK phụ thuộc vào nền tảng vì cấu hình của mỗi hệ điều hành là khác nhau. Nhưng Java là nền tảng độc lập.

Máy ảo Java (JVM) là một hệ thống thời gian chạy thực thi mã byte Java.

JRE là môi trường (thư viện tiêu chuẩn và JVM) cần thiết để chạy các ứng dụng Java.

Môi trường chạy thi hành Java R (JRE)

JRE cung cấp các thư viện, máy ảo Java và các thành phần khác cần thiết để chạy các applet và ứng dụng được viết bằng ngôn ngữ lập trình Java. Thời gian chạy này có thể được phân phối lại trên các ứng dụng để làm cho chúng trở nên độc lập.

Bộ công cụ phát triển phát triển Java (JDK)

JDK bao gồm JRE cộng với các công cụ phát triển dòng lệnh như trình biên dịch và trình gỡ lỗi cần thiết hoặc hữu ích để phát triển các ứng dụng và ứng dụng.

Nếu bạn muốn chạy các chương trình Java nhưng không phát triển chúng, hãy tải xuống Java Runtime Environment hoặc JRE. Nếu bạn muốn phát triển chúng, hãy tải xuống Bộ công cụ phát triển Java hoặc JDK

JDK

Hãy coi JDK là một bộ bao gồm những gì bạn cần để phát triển và chạy các ứng dụng Java.

JDK được cung cấp như một môi trường phát triển để tạo các ứng dụng, thành phần và applet.

JRE

Nó chứa mọi thứ bạn cần để chạy các ứng dụng Java ở dạng đã biên dịch. Bạn không cần thư viện và các tài liệu khác. Đã bao gồm tất cả những thứ bạn cần.

JVM, JRE, JDK đều là nền tảng của ngôn ngữ Java. Mỗi thành phần hoạt động riêng biệt. Jdk và Jre tồn tại về mặt vật lý, nhưng Jvm là một cỗ máy trừu tượng, nghĩa là nó không tồn tại về mặt vật lý.

JVM là một hệ thống con của JDK và JRE được sử dụng để xác thực mã trung gian được gọi là mã byte. Trước tiên, nó tải một "tệp lớp" có phần mở rộng .c do trình biên dịch Java (Javac) tạo ra thông qua trình nạp lớp của hệ thống con JVM và phân loại các vị trí bộ nhớ (vùng lớp, ngăn xếp, vùng heap và các thanh ghi máy) theo cách sử dụng của chúng. Sau đó kiểm tra tất cả bytecode để đảm bảo nó được trả về java và truy cập bộ nhớ cho toàn bộ mạng. Khi trình thông dịch bắt đầu chạy, trình thông dịch sẽ kiểm tra toàn bộ từng dòng chương trình và cuối cùng kết quả được hiển thị trong bảng điều khiển, trình duyệt và ứng dụng thông qua JRE (Môi trường chạy thi hành Java) cung cấp các phương tiện thực thi.

JRE cũng là một hệ thống con của JDK cung cấp các phương tiện thực thi như JVM, các lớp, tệp thực thi như .jar, v.v.

JDK- Nó là Bộ công cụ phát triển Java chứa tất cả các thành phần cần thiết được sử dụng trong lập trình như lớp, phương thức, Swing, AWT, gói, java (trình thông dịch), javac (trình biên dịch), appletviewer (trình xem ứng dụng applet), v.v. Vì vậy, đầu ra cuối cùng là nội dung của từng tệp hữu ích khi phát triển một ứng dụng, ứng dụng độc lập hoặc ứng dụng web.

nếu bạn Lập trình viên Java, bạn sẽ cần JDK trên hệ thống của bạn và gói này cũng sẽ bao gồm JRE và JVM, nhưng nếu bạn người dùng bình thường Ai thích chơi trò chơi trực tuyến thì bạn chỉ cần JRE và sẽ không có JDK trong gói này.,

JVM (Máy ảo Java) là một máy trừu tượng. Nó là một đặc tả cung cấp một môi trường thời gian chạy trong đó mã byte Java có thể được thực thi.

JVM có sẵn cho nhiều nền tảng phần cứng và phần mềm. JVM, JRE và JDK phụ thuộc vào nền tảng vì cấu hình của mỗi hệ điều hành là khác nhau. Nhưng Java là nền tảng độc lập.

Nó chứa mọi thứ bạn cần để chạy các ứng dụng Java ở dạng đã biên dịch. Bạn không cần bất kỳ thư viện hay bất cứ thứ gì. Mọi thứ bạn cần đều được biên soạn.

JRE không thể được sử dụng để phát triển, nó chỉ được sử dụng để chạy các ứng dụng.

Bộ công cụ phát triển Java SE (JDK)

JDK bao gồm JRE cộng với các công cụ phát triển dòng lệnh như trình biên dịch và trình gỡ lỗi cần thiết hoặc hữu ích để phát triển các ứng dụng và ứng dụng.

Cần phải hiểu rõ ràng về các thuật ngữ này (JVM, JDK, JRE) để hiểu cách sử dụng và sự khác biệt của chúng.

JVM Máy ảo Java (JVM) là một hệ thống thời gian chạy thực thi mã byte Java. JVM giống như một máy tính ảo có thể thực thi một tập hợp các lệnh đã biên dịch và thao tác các vùng bộ nhớ. Khi trình biên dịch Java biên dịch mã nguồn, nó sẽ tạo ra một bộ hướng dẫn được tối ưu hóa cao gọi là mã byte trong tệp .class. JVM diễn giải các hướng dẫn mã byte này và chuyển đổi chúng thành mã máy để thực thi.

Khi nói về ngôn ngữ lập trình Java, bạn thường có thể thấy các chữ viết tắt như: Java SE, JRE, JDK, IDE. Hãy nhìn vào chúng.

Java SE

Phiên bản tiêu chuẩn Java (Java SE)- đây là phiên bản tiêu chuẩn của Java, nó dành cho các ứng dụng khách được phát triển và trang này hoàn toàn dành riêng cho Java SE. Các ứng dụng có thể chạy độc lập hoặc dưới dạng ứng dụng trình duyệt web.

Ngoài phiên bản tiêu chuẩn còn có:

  • Phiên bản Java Enterprise (Java EE) để phát triển các ứng dụng phía máy chủ như Java Servlets, JavaServer Pages (JSP) và JavaServer Faces (JSF).
  • Java Micro Edition (Java ME) để phát triển ứng dụng cho thiết bị di động như điện thoại.

JRE

Môi trường chạy thi hành Java- Môi trường thời gian chạy Java. Đây là máy ảo Java cần thiết để chạy các chương trình Java trên máy tính người dùng. Nó chứa mọi thứ bạn cần để chạy các ứng dụng Java trên hệ thống của bạn. JRE đáp ứng nhu cầu của hầu hết người dùng.

JDK

JDK (Bộ công cụ phát triển Java SE)- một bộ công cụ dành cho nhà phát triển để tạo chương trình trong Java. Bao gồm các công cụ JRE plus để phát triển, gỡ lỗi và giám sát các ứng dụng Java.

Vì vậy, để quyết định nên tải xuống cái gì: JRE hay JDK? Trả lời câu hỏi: bạn muốn chỉ chạy các chương trình Java hay phát triển chúng? Chỉ cần chạy nó thì JRE là đủ cho bạn. Nếu bạn muốn phát triển chương trình thì bạn cần có JDK. Bộ công cụ phát triển JDK đã bao gồm JRE, do đó không cần phải tải cả hai xuống một cách riêng biệt.

Phiên bản Java

Ngoài các phiên bản khác nhau được thảo luận, cũng như các phiên bản khác nhau của gói (dành cho người dùng cuối và nhà phát triển), còn có các phiên bản được đánh số. Hiện tại phiên bản hiện tại là JDK 1.10. Nhân tiện, JDK 1.10 = JDK 10.

Nếu bạn quan tâm đến các bản phát hành sớm (chẳng hạn như beta), thì đối với phiên bản thứ mười một, bạn sẽ tìm thấy chúng tại

IDE

IDE (môi trường phát triển tích hợp)- môi trường phát triển tích hợp, được thiết kế để hỗ trợ nhà phát triển, tăng tốc quá trình phát triển chương trình. Thường bao gồm một trình soạn thảo có tính năng tô sáng cú pháp, trợ giúp, biên dịch tự động và khởi chạy chương trình. IDE có thể được tạo cho bất kỳ ngôn ngữ lập trình nào hoặc cho một ngôn ngữ cụ thể, chẳng hạn như Java. Môi trường phát triển tích hợp có sẵn miễn phí và trả phí. Một IDE miễn phí tốt cho Java là NetBeans.

Bộ chương trình và lớp JDK chứa:

  • trình biên dịch javac từ văn bản nguồn tới mã byte;
  • thông dịch viên java, chứa việc triển khai JVM;
  • thông dịch viên nhẹ jre(không có sẵn trong các phiên bản mới nhất);
  • trình xem applet người xem ứng dụng, thay thế trình duyệt;
  • trình gỡ lỗi jdt>;
  • người tháo rời javap;
  • chương trình lưu trữ và nén cái lọ;
  • chương trình thu thập tài liệu javadoc;
  • chương trình javah tạo tệp tiêu đề ngôn ngữ C;
  • chương trình javakey thêm chữ ký điện tử;
  • chương trình bản địa2ascii, chuyển đổi tệp nhị phân thành tệp văn bản;
  • chương trình rmiccơ quan quản lýđể làm việc với các đối tượng ở xa;
  • chương trình người nối tiếp, chỉ định số phiên bản của lớp;
  • thư viện và tệp tiêu đề của phương thức "gốc";
  • Thư viện lớp Java API(Giao diện lập trình ứng dụng).

Các phiên bản trước của JDK cũng bao gồm các phiên bản gỡ lỗi của các chương trình thực thi: javac_g, java_g vân vân.

SUN Microsystems không ngừng phát triển và cập nhật JDK, với các phiên bản mới xuất hiện hàng năm.

Năm 1996, phiên bản đầu tiên của JDK 1.0 được phát hành, phiên bản này được sửa đổi thành phiên bản số 1.0.2. Trong phiên bản này, thư viện lớp Java API chứa 8 gói. Toàn bộ gói JDK 1.0.2 được đóng gói trong một tệp duy nhất có kích thước khoảng 5 MB và sau khi giải nén, nó chiếm khoảng 8 MB dung lượng ổ đĩa.

Năm 1997, phiên bản JDK 1.1 xuất hiện, bản sửa đổi cuối cùng của nó, 1.1.8, được phát hành vào năm 1998. Phiên bản này có 23 gói lớp, chiếm 8,5 MB ở dạng đóng gói và khoảng 30 MB trên đĩa.

Trong các phiên bản đầu tiên của JDK, tất cả các gói thư viện API Java được đóng gói thành một tệp lưu trữ class.zip duy nhất và được gọi trực tiếp từ kho lưu trữ này mà không cần phải giải nén.

Bộ công cụ JDK sau đó đã được thiết kế lại rất nhiều.

JDK 1.2 được phát hành vào tháng 12 năm 1998 và đã có 57 gói lớp. Ở dạng lưu trữ, đây là một tệp có kích thước gần 20 MB và một tệp riêng biệt khác có kích thước hơn 17 MB với tài liệu được đóng gói. Phiên bản đầy đủ nằm trên 130 MB dung lượng ổ đĩa, trong đó khoảng 80 MB dành cho tài liệu.

Bắt đầu từ phiên bản này, SUN bắt đầu gọi tất cả các sản phẩm công nghệ Java của mình Nền tảng Java 2, Phiên bản tiêu chuẩn, viết tắt là J2SE và đổi tên thành JDK thành SDK Java 2, Phiên bản tiêu chuẩn(Bộ công cụ phát triển phần mềm), viết tắt là J2SDK, vì nó vẫn có sẵn Phiên bản doanh nghiệp SDK Java 2Phiên bản vi mô SDK Java 2. Tuy nhiên, bản thân công ty SUN thường sử dụng tên cũ và tên Java 2 đã trở nên phổ biến trong văn học.

Ngoài 57 gói lớp được yêu cầu trên mọi nền tảng và được gọi là API cốt lõi, Java 2 SDK vl.2 bao gồm các gói lớp bổ sung được gọi là API tiện ích mở rộng tiêu chuẩn. Java 2 SDK SE, vl.3, phát hành năm 2000, đã có 76 gói lớp tạo nên API lõi. Ở dạng đóng gói, đây là một tệp có dung lượng khoảng 30 MB và một tệp khác chứa tài liệu được đóng gói có kích thước 23 MB. Tất cả điều này được giải nén thành 210 MB dung lượng đĩa. Phiên bản này yêu cầu bộ xử lý Pentium 166 trở lên và RAM ít nhất 32 MB.

Hiện nay, phiên bản JDK 1.0.2 không còn được sử dụng nữa. Phiên bản JDK 1.1.5 với thư viện đồ họa AWT được tích hợp sẵn trong các trình duyệt phổ biến Internet Explorer 5.0 và Netscape Communicator 4.7 nên được dùng để tạo các applet. Công nghệ Java 2 được sử dụng rộng rãi trong các máy chủ và hệ thống client-server.

Ngoài JDK, SUN còn phân phối riêng một bộ JRE(Môi trường chạy thi hành Java).

JRE là gì

Bộ chương trình và gói lớp JRE chứa mọi thứ cần thiết để thực thi mã byte, bao gồm cả trình thông dịch java (trong các phiên bản trước, một trình thông dịch nhẹ jre) và một thư viện lớp. Đây là một phần của JDK và không chứa trình biên dịch, trình gỡ lỗi hoặc các công cụ phát triển khác. Nó là JRE hoặc dạng tương tự của nó từ các công ty khác được chứa trong các trình duyệt có thể chạy các chương trình bằng Java, hệ điều hành và hệ thống quản lý cơ sở dữ liệu.

Mặc dù JRE được bao gồm trong JDK nhưng SUN cũng phân phối bộ này dưới dạng một tệp riêng biệt.

JRE phiên bản 1.3.0 là một tệp lưu trữ có kích thước khoảng 8 MB, mở rộng thành 20 MB dung lượng ổ đĩa.