文章目录
JDK、JRE、JVM之间的关系
- JDK = JRE + java开发工具
- JRE = JVM + 核心类库
环境变量path配置及其作用
- 环境变量的作用是为了在dos的任意目录,可以去使用java和javac命令
- 先配置 JAVA_HOME = 指向jdk安装的主目录
- 编辑path环境变量,增加 %JAVA_HOME%\bin
Java编写步骤
- 编写java的源代码
- javac 编译,得到对应的 .class 字节码文件
- java 运行,本质就是把 .class 加载到jvm 运行
程序中 + 号的使用
-
当左右两边都是数值型时,则做加法运算
-
当左右两边有一方为字符串,则全部做拼接运算
-
运算顺序,是从做到右
public class plus{ public static void main(String[] args){ System.out.println(100 + 98); System.out.println("100" + 98); System.out.println(100 + 3 + "hello"); System.out.println("hello" + 100 + 3); } }
浮点类型
-
Java的浮点型常量(具体值)默认为double型,声明float型常量,须后加 ’ f ’ 或 ’ F ’
-
浮点型常量有两种表示形式
十进制数形式:如:5.12 512.0f .512(必须有小数点)
科学计数法形式:如:5.12e2[5.12*10的2次方] 5.12E-2[5.12/10的2次方]
-
通常情况下,应该使用double型,因为它比float型更精准
public class fdtype{ public static void main(String[] args){ float num2 = 1.1F; double num3 = 1.1; double num4 = 1.1f; System.out.println(num2); System.out.println(num3); System.out.println(num4); double num5 = .123; System.out.println(num5); System.out.println(5.12e2); System.out.println(5.12E-2); double num6 = 2.1234567851; float num7 = 2.1234567851F; System.out.println(num6); System.out.println(num7); } }
-
浮点数使用陷阱:2.7 和 8.1 / 3 比较
- 一个重要的使用点:当我们对运算结果是小数的进行相等判断时要小心
- 应该是以两个数的差值的绝对值在某个精度范围类判断
-
如果是直接查询得的小数点或者直接赋值,是可以判断相等
字符类型(char)
单个字符,用char,char是两个字节(可以存放汉字)(多个字符用字符串String,后面详细讲)
-
字符常量是用单引号(’ ')括起来的单个字符。例如:char c1 = ‘a’; char c2 = ‘中’; char c3 = ‘9’;
-
Java中还允许使用转义字符’ \ ‘来将其后的字符转变为特殊的字符型常量。例如:char c3 = ‘\n’;//’\n’表示换行符
-
在Java中,char的本质是一个整数,在输出时,是unicode码对应的字符。要输出对应的数字,可以(int)字符
-
char类型是可以进行运算的,相当于一个整数,因为它都对应有unicode码
字符编码表
ASCII(ASCII编码表 一个字节表示,一个128个字符,实际上一个字节可以表示256个字符,只用128个)
Unicode(Unicode编码表 固定大小的编码 使用两个字节来表示字符,字母和汉字统一都是占用两个字节,这样浪费空间)
utf-8(编码表,大小可变的编码 字母使用1个字节,汉字使用3个字节)
gbk(可以表示汉字,而且范围广,字母使用1个字节,汉字2个字节)
gb2312(可以表示汉字,而且范围广,字母使用1个字节,汉字2个字节)
Unicode码兼容ASCII码
布尔类型boolean
布尔类型也叫boolean类型,boolean类型数据只允许取值true和false,无null
boolean类型占一个字节
boolean类型适用于逻辑运算,一般用于程序流程控制:if条件控制语句,while循环控制语句,do-while循环控制语句,for循环控制语句
public class boolean01{
public static void main(String[] args){
boolean ispass = true;
if (ispass == true){
System.out.println("考试通过,恭喜");
}
else{
System.out.println("考试不通过,下次继续努力");
}
}
}
注:不可以0或非0的整数替代false和true,这点和C语言不同
自动类型转换
-
当java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换
-
数据类型按精度(容量)大小排序为:
-
当我们把精度(容量)大的数据类型赋值给精度(容量)小的数据类型时,就会报错,反之就会进行自动类型转换
-
(byte,short)和 char之间不会相互自动转换
-
byte,short,char 他们三者可以计算,在计算时首先转换为int类型
-
boolean不参与转换
-
自动提升原则:表达式结果的类型自动提升为操作数中最大的类型
强制类型转换
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符(),但可能造成精度降低或溢出,格外要注意。
-
当进行数据的大小从 大——→小,就需要使用到强制转换
-
强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级
-
char类型可以保存int的常量值,但不能保存int的变量值,需要强转
-
byte和short类型在进行运算时,当做int类型处理
判断是否能够通过编译
基本数据类型和String类型的转换
简单说:就是把这个字符串转换成一个int返回
注:在将String类型转成基本数据类型时,要确保String类型能够转成有效的数据,比如 我们可以把“123”,转成一个整数,但是不能把“hello”转成一个整数。如果格式不正确,就会抛出异常,程序就会终止。
练习
-
程序阅读题
-
使用char类型,分别保存\n \t \r \ \ 1 2 3 等字符,并打印输出
-
编程,保存两本书名,用+拼接,看效果,保存两个性别,用加号拼接,看效果。保存两本书价格,用加号拼接,看效果