0.Java基础知识点
1.计算机高级编程语言类型
编译型
解释性
2.Java两种语言的结合
编译指令 Javac.exe Javac 表示编译,编译成class文件(编译java程序)
解释命令 Java.exe Java 类名 表示放在虚拟机中执行(运行java程序)
3.Java程序组成:Java源文件,字节码文件,机器码指令 ,Java虚拟机。
4 .** 所有程序并不是直接运行在操作系统上,而是通过jvm上执行。**
5.path和class path区别
path:是操作系统的环境属性,指的是可以执行命令的程序路径。
classpath:所有*.class文件的执行路径,Java命令执行时将利用此路径加载所需要的*.class文件
6.一个Java源文件之中可以有多个class定义,但是只能有一个 public class。
7.classpath主要指类的运行路径,jvm需要通过classpath加载需要的类。
默认为当前路径。
1.注释 (释不会执行,是为了方便别人阅读代码,书写注释是一个良好的习惯)
单行注释 注释单行文字
//这就是单行注释多行注释 注释一段文字
/\* 多行注释 多行注释 多行注释 \*/文档注释 注释一段文字
/\*\* \* @deprecated 描述 \* @Author 作者 \*/
2.标识符
Java所有的组成部分都要有名字,这些名字就是标识符
所有的标识符都应该以字母(A-Z a-z),美元符号($),下划线(_)开始
首字母之后可以是字母(A-Z a-z),美元符号($),下划线(_)和数字的任意组合
不能使用关键字作为变量名,方法名
标识符大小写敏感
可以使用中文,但是不建议使用
3.数据类型和范围
整数类型
byte占1个字节范围 大小范围-128 至127
short占2个字节范围 大小范围-32768 至32767
int占4个字节范围 大小范围- 2147483648 至2147483647
long占8个字节范围 大小范围- 9223372036854775808 至 9223372036854775807
浮点数类型
float占4个字节范围
double占8个字节范围
字符类型
char占2个字节范围
布尔类型
- boolean占1位 只有两个值是(true)与非(false)
扩展
进制
二进制 0b 开头 0b00012
八进制 0 开头 0108
十六进制 ox 开头 0x10 16 0-9 A-F
浮点数
浮点数的范围是有限的
数值有舍入误差
是一个大约数,接近但不等于
最好完全避免使用浮点数进行比较
最好完全避免使用浮点数进行比较
最好完全避免使用浮点数进行比较
字符型
字符可以转换为数字
所有的字符本质还是数字
根据编码类型,每一个字符对应一个数字 例 'a' = 97
转义字符
\t 制表符
\n 换行符
数据类型 byte short int long float double char boolean 大小(bit) 8 16 32 64 32 64 16 1 默认值 0 0 0 0 0.0f 0.0d '\u0000' false
4.类型转换
java是强类型语言运算时可能要用到类型转换,把不同类型的数据转换为同类型数据进行运算
byte、short、char–>int–>long–>float–>double
强制类型转换
从高到低转换
(类型)变量名
int a = 10; byte b = (byte)a;
自动类型转换
从低到高
int a = 10; double b = a;
注意点
- 不能对布尔型转换
- 不能把对象类型转换为不相干的类型
- 转换是可能会存在内存溢出和精度的问题
5.变量和常量
命名规范
见名知意,使用英文
变量名首字母小写 驼峰原则(其他单词首字母大写) 例 lastName
常量大写字母加下划线 例 MAX_VALUE
类名首字母大写和驼峰原则 例 LastName
方法名与变量名相同
2.变量
- 变量就是可以变化的量,存储位置确定值可以变化
- 变量必须声明数据类型
- 变量是java中最基本的存储单位,其要素包括变量名,数据类型和作用域
- 变量声明必须以分号结尾
a. 局部变量
代码块内声明的变量 必须声明与初始化
b. 实例变量- 从属于对象,自动初始化(每个类型有默认值)
- boolean默认值为false
- 除了基本类型其余的默认值都是null
c. 类变量 - 关键字static标识的变量
- static 数据类型 变量名 = 值
- 从属于整个类
d.常量 - 初始化之后就不能改变的值
- 通过关键字final定义
- final 数据类型 变量名 = 值;
- 常量名使用大写字母
6.运算符
算术运算符
加(+)、减(-)、乘(*)、除(/)、取余(%)、自增(++)、自减(–)
取余(%)取除运算的余数 (22/10=2 余 2) (22%10=2)
int a = 2; int b = a++;//a+1 先赋值再自增 int c = ++a;//a+1 先自增再赋值 //自减相同
赋值运算符
- =(赋值符)
int a = 18;//把值18赋给a
- =(赋值符)
关系运算符
- 大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(=)、不等于(!=)
逻辑运算符
- 与(&&)或(||)非(!)
- 与 两真则真 两假则假
- 或 一边真为真
- 取反 真为假 假为真
位运算
与(&)或(|)异或(^)取反(~)左移(<<)右移(>>)
a = 0010 0001; b = 0100 1001; a&b = 0000 0001;//有0则0 a|b = 0110 1001;//有1则1 a^b = 0110 1000;//相同为0 不同为1 ~b = 1011 0110;//取反 2\<\<3 = 16;//\<\< \*2 2\>\>1 = 1;//\>\> /2
条件运算符
(?:)
条件?条件正确结果(true):条件错误结果(false);
int a = 1; int b = 2; inc c = a\>b?a:b;//c=2
拓展赋值运算符
+= -= *= /=
int a = 5; a += 5;//等于a=a+5 其他几个同理
7.&和&& |和||
&:表示普通与,所有的判断条件都要依次执行。
&&:表示短路与,若干个条件,如果前面的条件返回了true,那么后面的不再判断,结果就是false。
|:表示普通或,所有的判断条件都要执行。
||::表示短路或,若干个条件,如果前面的条件返回了true,那么后面的不再判断,结果就是false。
在位运算中,&表示位于运算,|表示位或运算。
8.程序结构
1.顺序结构
2.选择(分支)结构
1.if语句格式 if…else语句
1 | if(布尔表达式 1){ |
2.switch语句
1 | switch(expression){ |
switch注意点
每个case语句后面都加上一个break语句,如果不加入此语句,switch语句会从第一个满足条件的case开始依次执行操作。
switch(expression)中,expression是一个整数表达式,因此传递给switch和case语句的参数应该是int,short,char或byte。而对于long却不可以使用,在jdk1.7之前,string都不能用于switch,现在增加了string的判断。
3.循环结构
while循环:在不确定循环次数,但是确定循环结束条件的情况下使用。
for循环:确定循环次数的情况下。
1 | do { |
continue语句可以强迫程序跳到循环的起始处,当程序运行到continue语句时,会停止运行剩余的循环主体,而回到循环的开始处继续运行。