目录
~:按位非。单目运算符,将操作数的每个位(包括符号位)全部取反。
float a = 3.5; int b = a; 打印b的结果是什么
int a = 5; float b = a; 打印b的结果是什么
char a = 'A'; int b = a; 打印b的结果是什么
int a = 68; char b = a; 打印b的结果是什么
&可以作为逻辑运算符使用, 也可以作为位运算符使用, 区别是什么
|可以作为逻辑运算符使用, 也可以作为位运算符使用, 区别是什么
24.什么是单目(一元), 双目(二元), 三目(三元)运算符
java的发展史
1996 | Java 1.0发布, 但是缺陷性和局限性很大, 并不能用于开发 |
1997 | Java 1.1发布, 引入了JDBC、内部类、反射 |
1998 | J2SE 1.2发布, Java正式改名为J2SE Sun公司推出了Java三大平台版本 1. J2SE: Java标准版(Standard Edition) 2. J2EE: 服务器端开发得企业版(Enterprise Edition) 3. J2ME: 手机嵌入式设备微型版(Micro Edition) |
1999 | HotSpot虚拟机发布 |
2000 | J2SE 1.3发布 |
2002 | J2SE 1.4发布, Java成为服务器端开发的首选平台 |
2004 | J2SE 1.5发布, 这是一个里程碑版本 Sun公司直接对外宣布JavaSE5.0 |
2005 | Java SE 6发布 J2EE改名为 Java EE J2SE改名为 Java SE J2ME改名为 Java ME |
2006 | Sun公司宣布JDK开源 并且建立了 OpenJDK 组织对这些源码进行独立管理 |
2009 | Oracle 以 74 亿美元收购 Sun 公司 取得了 Java 的商标版权 |
2011 | JavaSE 7发布 |
2014 | JavaSE 8发布 |
2017 | JavaSE 9发布 Oracle 决定将JavaEE移交给开源组织,最后 Eclipse 基金会接手 JavaEE更名为Jakarta EE(雅加达) |
2018 | 从这一年开始, 每6个月就会发布一个 Java 版本 并区分了最新版和LTS版, 生产环境最好使用LTS版本 JavaSE 10 发布 JavaSE 11 LTS发布 |
2019 | JavaSE 12 发布 JavaSE 13 发布 |
2020 | JavaSE 14 发布 JavaSE 15 发布 |
2021 | JavaSE 16 发布 JavaSE 17 LTS 发布 |
2022 | Java SE 18 发布 |
java 的三大平台
1. J2SE: Java标准版(Standard Edition)
2. J2EE: 服务器端开发得企业版(Enterprise Edition)
3. J2ME: 手机嵌入式设备微型版(Micro Edition)
J2SE、J2EE、J2ME中的"2"是英文单词"to"的意思
jdk、jre、jvm
jdk
JDK是Java开发工具包,是Sun公司针对Java程序员的产品。
JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。
JDK是整个JAVA的核心,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)
jre
JRE是运行基于Java语言编写的程序所不可缺少的运行环境。也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。
JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,这些是运行Java程序的必要组件。
与大家熟知的JDK不同,JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),只是针对于使用Java程序的用户。
jvm
java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。
也就是说.class文件并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
只有JVM还不能成.class文件的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib,而jre包含lib类库。
java语言跨平台的原理
1、首先将java文件编译成字节码(.class)文件;
2、使用Java虚拟机(JVM--Java Virtual Machine)运行运行字节码文件。
上面的步骤中,第一步中,在所有的平台上生成的字节码文件都是相同的。
上面的步骤中,第二步中,在不同的平台上运行字节码文件的Java虚拟机是不同的。
Java的开发团队针对不同的平台开发出了对应版本的java虚拟机,这使得同一个java代码文件可以再不同的平台上运行。
所以,java能实现跨平台运行是因为有各种平台对应版本的java虚拟机的支持。
java程序执行的过程
以记事本写的Java文件为例:首先新建一个记事本文件,打开后编写Java程序,然后关闭文件,将文件的后缀名改为java,然后在当前目录地址栏输入cmd打开命令行窗口,运行javac Test.java命令,将java文件编译成字节码文件,会在当前目录下生成一个.class文件,之后在命令行中输入java Test命令,运行文件,其中Test为文件中书写的class类名。
javac和java的区别
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。
javac工具读由java语言编写的类和接口的定义,并将它们编译成字节代码的class文件。javac 可以隐式编译一些没有在命令行中提及的源文件。用 -verbose 选项可跟踪自动编译。
javac负责的是编译,将.java文件编译成.class文件,当执行javac的时候,会启动java的编译器程序,对指定的扩展名为.java的文件进行编译,生成了jvm可识别的字节码文件,即.class文件(java的运行程序)
java负责的是运行,当执行java时,会启动jvm加载运行时所需要的类库,并执行.class文件
java文件和class文件的区别
- .java文件是一个文本文件,就是我们用java语言写成的代码。
- .class文件是一种二进制文件,由.java文件通过javac这个命令(jdk本身提供的工具)编译生成的一个文件,可以由jvm(java虚拟机)装载(类装载),然后对java解释执行,就是运行时的程序。
java的基本数据类型
内存硬盘
最小单位:比特 一个bit 只能存储一个0或者是一个1
每8个比特是一个存储空间称为byte(字节)
BIT,B,KB,MB,GB,TB,PB换算
1 比特(BIT)=0.125 字节(B)
1Bit (1个比特位);
1Byte (1个字节) = 1B = 8Bit ;
1KB = 1,024B = 8,192Bit;
1MB = 1,024KB = 1,048,576B = 8,388,608Bit;
1GB = 1,024MB = 1,048,57KB = 107,373,568B = 858,988,544Bit;
1TB = 1,024GB = 1,048,57MB = 107,373,568KB = 109,950,533,632B = 879,604,269,056Bit;
1PB = 1,024TB = 1,048,57GB = 107,373,568MB = 109,950,533,632KB = 112,589,346,439,168 B = 900,714,771,513,344Bit;
java 中的关键字
java的关键字都是小写 ,TRUE、FALSE、NULL都不是关键字
java的关键字
java中的转义字
java的转义字
java的自动类型转换
自动类型转换图
表数范围小的数值可以自动向表数范围大的进行自己类型转换
但是 表数范围大的数值不可以自动向表数范围小的进行自己类型转换
表数范围大的数值不可以向表数范围小的进行自己类型转换(需要做强制转换)
变量的命名规则
命名需要遵循驼峰规则
包名: 全部小写
类名:单词首字母大写
方法名:首字母小写,字符开头大写
常量:全部大写【常加下划线】
参数:(和方法命名一样)【尽量使用一个单词,意思明确】
驼峰命名法![](https://img-blog.csdnimg.cn/c55221a54d9840e297252cbe6d778ae0.png)
连字符命名
连字符(hyphen),是用于一个合成词的两部分之间的或一个单词的字节之间的一种标点符号,尤其是一行或一段结束时用。连字符只指“中划线”,不包括上划线和下划线。
java的直接量
直接量的类型
int类型的直接量:在程序中直接给出的整型数值,可分为二进制、十进制、八进制和十六进制4种,其中二进制需要以0B或0b开头,八进制需要以О开头,十六进制需要以0x或0X开头。例如123、012(对应十进制的10)、0x12(对应十进制的18&