Công nghệ Java là gì và ứng dụng của nó là gì? JRE (Môi trường chạy thi hành Java) là gì? thời gian chạy Java

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, nó 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; nó 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.

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 lựa 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 việc 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 và 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 cá thể 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 các đị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ằng nhau (===) 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 quy 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 với chúng (số học, phép ép kiểu, phép toán 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.
++ (Gia 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ần 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, 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 tổng hợp toán tử gán ghép: +=, -=, *=, /=, %=, &=, |=, ^=,<<=, >>= ; >>>=. Các ký tự được viết không có dấu cách, không thể sắp xếp lại được.

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 thiết, 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 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 nếu 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ỏ".

“Thời gian chạy Java, chương trình này là gì?” chúng ta đang nói về một chương trình đặt ra câu hỏi cho hầu hết người dùng vì những lý do rất khách quan. Thực tế là rất ít người cài đặt nó riêng biệt trên máy tính của họ. Đối với hầu hết mọi người, nó tự cài đặt, nghĩa là nó được lấy từ một nơi nào đó không xác định. Đây là nơi phát sinh câu hỏi.

Điều này được giải thích là do người dùng đã quen với việc virus xâm nhập vào máy tính, thậm chí không phải các chương trình hữu ích. Nhưng đây không phải là trường hợp. Và chúng tôi sẽ cố gắng giải thích cho bạn lý do tại sao điều này xảy ra trong bài viết của chúng tôi, để bạn không còn nghi ngờ gì nữa và mọi nỗi sợ hãi sẽ biến mất.

Có lẽ nên bắt đầu với Java là gì. Đây là một trong những ngôn ngữ lập trình phổ biến nhất, được sử dụng để phát triển ứng dụng ở các lĩnh vực và cách triển khai rất khác nhau. Nó được phát hành vào năm 1995, vì vậy bạn không nên ngạc nhiên khi một số lượng lớn các chương trình phổ biến được viết bằng Java.

Để chạy các chương trình được viết bằng ngôn ngữ lập trình tuyệt vời này, bạn cần có trình biên dịch hoặc phần mềm đặc biệt. Chỉ một trong những ứng dụng này là người hùng của bài viết này. Tại sao nó lại đặt ra nhiều câu hỏi và phản ứng mơ hồ như vậy đối với bản thân chúng tôi, chúng tôi sẽ vui lòng giải thích thêm.

Môi trường chạy thi hành Java chương trình này là gì

Các nhà phát triển biết và hiểu rất rõ rằng các chương trình viết bằng Java sẽ không chạy nếu không có phần mềm đặc biệt. Thật đáng để khen ngợi họ vì họ đã làm việc rất hiệu quả trong lĩnh vực này. Do đó, để không làm phức tạp thêm cuộc sống của người dùng, họ đã đưa việc cài đặt phần mềm cần thiết vào quá trình cài đặt hầu hết các chương trình Java.

Điều duy nhất họ không nghĩ đến là hầu hết các loại virus hiện nay đều xâm nhập vào hệ thống của người dùng theo cùng một cách. Vì vậy, một chương trình được cài đặt trái phép vào hệ thống không thể không làm dấy lên nghi ngờ.

Bây giờ bạn đã biết đây là loại chương trình gì - Môi trường chạy thi hành Java, bạn hiểu rằng bạn không nên xóa nó nếu muốn tất cả các ứng dụng Java hoạt động.

>> JRE là gì?

Khóa huấn luyện:

JRE là gì?

JRE là gì?

JRE là Môi trường chạy thi hành Java. Trong bản dịch tiếng Nga, JRE là môi trường thời gian chạy cho ngôn ngữ Java. Đây là cách triển khai máy ảo tối thiểu cần thiết để chạy các ứng dụng Java mà không cần trình biên dịch hoặc các công cụ phát triển khác. JRE bao gồm một máy ảo - Máy ảo Java - và thư viện lớp Java.

Tải xuống JRE từ trang web chính thức: http://www.oracle.com/technetwork/articles/javase/index-jsp-138363.html

JRE được phân phối miễn phí và có thể tải xuống từ trang web của Oracle cho hầu hết các nền tảng.

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 trình thông dịch java (trong các phiên bản trước là trình thông dịch jre nhẹ) và 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à Oracle JRE hoặc phiên bản tương tự của nó, do các công ty khác tạo ra, hiện diện trong các trình duyệt có thể chạy các chương trình bằng Java, trong 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 Oracle cũng phân phối nó dưới dạng một tệp riêng biệt.

Sự khác biệt giữa JRE, JVM và JDK là gì?

jvm - Máy ảo Java - môi trường ("ảo") trong đó mã được biên dịch được thực thi

jre - Môi trường chạy thi hành Java. Đây chỉ đơn giản là một gói bao gồm JVM và một bộ thư viện tối thiểu để chạy các chương trình. Và cũng là một plugin trình duyệt nơi các applet sẽ được 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.