一、java语言特点(跨平台※)
JDK java开发工具包 java语言开发环境
JRE java程序运行环境 只需要运行程序时,可以只安装JRE
JVM java程序虚拟机
java的跨平台性::JVM将字节码内容解析成系统执行和系统交互,在不同的系统上安装不同版本的虚拟机,就可以执行字节码文件。
二、jdk安装与环境变量配置
1、jdk安装
下载安装包,一直下一步即可(注意安装路径)
2、环境变量配置
JAVA_HOME:JDK根路径
Path:系统执行文件所在地址
classpath(现在不需要)
操作:右键(此电脑)---属性--高级系统设置--环境变量
验证:通过 java -version在命令终端查看环境变量是否配置完成。
三、手撕HelloWorld
Hello.java文件
四、程序运行过程※※
javac 编译 将.java文件编译成.class文件 class文件又叫做字节码文件
java 类名 运行指定类 JVM解析字节码文件编程系统(WINS)指令
1、javac 编译Hello.java文件为Hello.class文件
2、java 运行Hello.class文件
五、创建java项目
1、java项目的创建
2、源文件夹src 存放java文件
3、建包
4、建类
六、关键词
关键字: 开发语言中已经内定的一些单词,并且赋予了特殊的作用,开发人员只能按照指定的语法进行使用。 注意:java中的关键字所有字母都是小写。
七、标识符(规则和规范※)
标识符: 变量名、类名、包名、方法名、参数名、常量名
1、规则
标识符只能有字母、数字、$和_组成,首字符不能是数字(中文语法通过,但是不允许) 标识符不能是关键字 但可以包含 e.g. _static
2、规范
包名:全部小写 类名:首字母大写 常量名:全部大写 尽量使用驼峰命名法(单词首字母大写) 所有的标识符命名都要见名知意 可以缩写,如果影响到见名知意,就不要缩写
八、变量常量
1、变量:在程序运行阶段,可以发生变化的量
声明变量:声明变量的名字和类型。
初始化:给变量第一次赋值 未初始化:从来没有给该变量赋值 未初始化的变量是不可使用的变量
2、常量:在程序运行阶段,不可以发生变化的量
九、数据类型※
1、java基本数据类型
整数类型:byte short int long
浮点型:float double
字符型:char
布尔型:boolean
(1)整数类型
byte 1个字节(包含8个bit 第一个bit存符号 0正1负) -2^7~2^7-1 -128~127 默认值0 short 2个字节 16个bit -2^15~2^15-1 0 int 4 32 -2^31~2^31-1 (默认) 0 long 8 64 -2^63~2^63-1 0
原码:是最简单的机器数表示法,用最高位表示符号位,其他位存放该数的二进制的绝对值。 反码:正数的反码和原码一致;负数的反码就是它的原码除符号位外,按位取反。 补码:正数的原码、反码、补码都一致;负数的补码等于反码+1。原码->补码:正数不变,负数除符号位以外 按位取反 末位加一
补码->原码:正数不变,负数除符号位以外 按位取反 末位加一
(2)浮点型
float 单精度浮点数 4个字节 默认值0.0f double 双精度浮点数 8个字节 (默认) 0.0
(3)字符型
char 2个字节 0~65535 (即FFFF) 默认值为Unicode码为0的符号
(4)布尔型
boolean 1 or 4个字节 true/false 默认值是false 不能与其它类型进行转换
2、java引用数据类型
引用数据类型:指那些不直接存储数据值,而是存储对数据值的引用的数据类型。Java中的引用数据类型包括对象、数组和接口。
十、基本数据类型的转换※
1、隐式转换(程序会自动完成的转换)
(1)取值范围小的类型可以自动转成取值范围大的类型的值
(2)整数类型可以向浮点数类型转换
(3)字符和正整数之间的转换
2、强制类型转换
取值范围小的类型向取值范围大的类型转换
浮点数向整数转换
注意:boolean类型不能和其它类型转换(强制类型转换也不行)
3、补充
(1)\ 转义符
转义符是一种特殊的字符序列,它以反斜杠(\)开头,用于表示那些无法直接输入的或者具有特殊含义的字符。通过转义符,我们可以在字符串或字符常量中插入这些特殊字符,而不会引起语法错误或解释上的歧义。
(2)进制
(3)println()与print()区别
十一、输入输出
Scanner 扫描器对象 System.in 输入流 对象 注意输入流的关闭 .close()
十二、注释
1、文档注释
2、单行注释
// 单行注释 只能注释单行内容
3、多行注释
/* 多行注释 注释内容 注释内容 */
十三、运算符和表达式
1、算术运算符
(1)+ - * / % 其中* / % 优先级高于 + -
整数和整数运算结果是整数(int) 除非有long参与得到结果就是long类型
%的结果的正负 A%B得到的结果的正负号和A的正负号一样 小数、负数都可取余 小数取余可能失精
(2)a++ a-- ++a --a 自运算符 ※
a++在a变量原值基础上+1 a--在a变量原值基础上-1
a++ 后加加 先将a的值赋给表达式,a的值再+1 ++a 前加加 先+1,再将a的值赋给表达式
2、比较运算符
> < >= <= == !=
== 在基本数据类型中比较的是值是否一样 ※
3、逻辑运算符
&&逻辑与运算符 ||逻辑或运算符 !逻辑非运算符 A && B A和B都为true结果才为true A || B A和B有一个为true结果就为true result = !true;
※短路现象:多个表达式运算,前面的表达式已经可以明确整个表达式的结果后面的不需要再运行了
4、位运算符 是一种二进制运算
(1)按位与运算 & A&B
将A和B转成二进制 右侧对齐上下比较,两者都为1结果才为1,否则为0
(2)按位或运算 | A|B
将A和B转成二进制 右侧对齐上下比较,两者有1个为1结果即为1,2个都为0结果才为0
(3)按位异或运算 ^ A^B
将A和B转成二进制 右侧对齐上下比较,两者不同则为1,相同则为0
(4)交换变量值
①t交换
②加法交换
③异或交换
(5)反码运算
反码 ~ 将二进制中的0换成1,1换成0
(6)移位运算
<< A<<B 相当于A*2^B
>> 左侧补符号位 A>>B 相当于A/2^B 符号位不动
>>> 左侧空出的位置补0 符号位一起右移
(7)& | 也可以对boolean进行运算 得到boolean值
&和&&运算结果是一样的
& 和 && 的区别:①&&是逻辑操作符,而&是位操作符
②&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的
表达式的结果都为true时,整个运算结果才为true,否则,为false。
③&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表
达式
④&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表
示按位与操作
⑤& 按位与操作,按二进制位进行"与"运算。运算规则:(有 0 则为 0)
0&0=0; 0&1=0; 1&0=0; 1&1=1;