执行过程
.java文件-----(编译器javac命令编译)---->.class文件---------(JVM的Java命令解析)---------->结果
基本代码块:
package com.hw.helloworld;
public class HelloWorld {
public static void main(String[] args){
System.out.println("HelloWorld!!!");
}
}
//main方法又JVM调用,字符串数组args由JVM赋值,程序打印长度为0,程序中数组长度不可变
//只能通过解释命令Java来添加值:java HelloWorld 值1 值2 ...
package com.hw.hello;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello world!!!");
System.out.println(args.length); //0
}
}
//还有一种方式,创建新的数组,把args引用指向堆新对象
package com.hw.hello;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello world!!!");
String[] s = new String[10];
args = s;
System.out.println(args.length); //10
}
}
常量和变量
基本数据类型和引用类型
基本数据类型(四项八种):
- 整型:byte、short、int、long
- 浮点型:float、double
- 字符型:char
- 布尔型:Boolean
引用类型:
- 类、接口、数组、字符串、Lambda表达式…
注意:
1.字符串类型为引用类型,不属于四项八种;
2.浮点型为近似值;
3.浮点类型默认使用double,想使用float需加后缀F; 整形默认使用int,想使用long需加后缀L;
基本类型:(双浮点比单浮点数更精确,比如0.001比0.01精确)
自动转换和强制转换
自动转换(向上转换)是依据类型数值范围决定(不是根据字节),SO:
short–>int–>long–>float–>double
强制转换(向下转换)会使结果可能不一样,可能会精度损失,数据溢出
格式:(类型)值
注意:
1.byte/short/char类型参与运算的时候,会首先被提升为int类型,即整数类型来计算;
2.byte/short/char类型变量右侧赋值的值没有超过byte/short/char范围,则编译器自动会加上强制类型转换 如:byte a = 10; (int类型,值没有超过byte类型的范围,SO碰到byte类型会被强制转换)
编译器是这样执行的:byte a = (byte)10;
3.Boolean类型不能进行类型转换
4.字符对照表,ASCII码表是最基本的对照表,还有更大的Unicode万国码表,记住48-0,65-A,97-a
运算符
三元运算符:
格式:类型 变量名 = 条件?结果A:结果B (满足条件,则结果为A赋给变量)
Java9新增加的JShell脚本(适用于简单的Java代码编写)
进入脚本:cmd–>jshell命令
switch选择结构类型要求
IDEA的使用:
项目结构:
模块在项目下:如test1,test2,test3…
包(源码)在模块下的src目录下,如com.hw.xxx;
若要在项目中放多个模块,则开始项目要建一个空的项目
IDEA常用快捷键:
main方法生成快捷键:psvm
System.out.println()生成快捷键:sout
自动导包:Alt+enter
自动格式化代码:Ctrl+Alt+L
自动插入方法代码:Alt+Ins