三个步骤:编写、编译、运行。
运行生成的字节码文件
新建记事本,后缀换为.java
在CMD中
这样会出现.class后缀的同名文件
有javac 有后缀,只有java没后缀
运行完以后更改.java文件得重新用javac编译。
程序的注释
/*第一行的第三个单词必须和所在的文件名称完全一样,
public class后边代表定义一个类的名称,类是Java所有源代码的基本组织单位*/
public class HelloWorld {
//第二行任何代码内容不变 ,代表main方法,这一行代表程序执行的起点
public static void main(String[] args){
//代表打印输出语句(其实就是屏幕显示)
//打出什么,显示什么。
System.out.println("Hello,World!");
}
}
第一行必须与文件名完全一样
单行注释 //注释信息
多行注释(区块) /* 注释信息
*/
关键字的概念与特征
关键字的特点:
1.完全小写的字母。
2.有特殊颜色。
标识符的概念与特征
(即像HelloWorld一样的)
常量
常量:在程序运行期间,固定不变的量。
分类:
1.字符串常量:双引号引起来的部分,叫做字符串常量。例如:“abc”
2.整数常量:直接写上的数字,没有小数点。例如:100
3.浮点数常量:直接写上的数字,有小数点。例如:2.5
4.字符常量:凡是用单引号引起来的单个字符。例如’A’、‘9’、‘中’
5.布尔常量:只有两种取值。true、false。
6空常量:null。代表没有任何数据。
下面展示一些 内联代码片
。
public class Demo01Const {
public static void main(String[] args){
System.out.println("ABC");
System.out.println("");
System.out.println(20);
System.out.println(2.5);
System.out.println('A');//单引号不能不写数据
System.out.println(true);
//空常量不能用来打印输出
}
}
输出结果
数据类型
共两种
1.基本数据类型(今日重点)
4类八种
整数型 byte short int long
浮点型 float double
字符型 char
布尔型 boolean
注意事项:
1.字符串不是基本类型,而是引用类型。
2.浮点型可能知识一个近似值,并非精确的值。
3.范围和内存不一定有关。长整型19和单精度38的对比
4.浮点中默认类型是double。如果一定要使用float类型,需要加上一个后缀F。整数默认int,若一定要用long,需加一个后缀L。大小写皆可,最好大写。
2.引用数据类型(日后学习)
字符串、数组、类、接口、Lambda
变量的概念与定义格式
变量:程序运行期间,内容可以改变的量。
创建一个变量并且使用的格式:
数据类型 变量名称;
变量名称=数据值;
或者
数据类型 变量名称=数据值;
public class Demo02Variable{
public static void main(String[] args){
//创建一个变量
int num1;
num1=10;
System.out.println(num1);
}
}
变量注意问题
1.多个变量名称不可重复。
2.对于float和long来说,字母后缀F和L不用丢掉。
float num1=2.5F;
long num2=30000L;
3.byte short 数据值不能大过取值范围。
4.没赋值变量,不能直接使用,一定要赋值后再使用。
5.变量使用布不能超过作用域的范围。
【作用域】:从定义变量的一行开始,一直到所属的大括号结束位置。
6.可以通过一个语句创见多个变量,但不推荐。
int a,b,c;
a=10;
b=20;
c=30;
//或
int a=10,b=20,c=30;
数据类型转换
自动转换
当数据类型不一样时,将会发生数据类型转换。
1.自动类型转换(隐式)
1.特点:代码不需要特殊处理,自动完成。
2.规则:数据范围从小到大。
//左侧long,右侧int。100后没有L也是可以运行的
long num1=100;
System.out.println(num1);//100
//左侧float 右侧long
float num2=30L;
System.out.println(num2);//30.0
强制转换
2.强制类型转换(显式)
1.特点:代码需要特殊的格式处理,不能自动完成。
2.格式:范围小的类型 范围小的变量名=(范围小的类型)原本范围大的数据。
eg:int num1=(int)100L;
注意事项
1.强制类型转换一般不推荐使用,因为可能发生精度损失、数据溢出。
//精度损失
int num1=(int)3.99;
System.out.println(num1);//3 去尾法
//数据溢出
int num2=(int)600000000;
System.out.println(num2);//1705032704
2.byte/short/char这三种类型都可以发生数学运算,例如加法“+”。
//数学运算
char zifu1='A';
System.out.println(zifu1+1);//66 A被当65进行处理了。
3.byte/short/char这三种类型运算的时候,都会被首先提升成int类型,然后再计算。
//数学运算
byte num1=40;
byte num2=50;
//byte result1=num1+num2;byte+byte-->int+int-->int
int result1=num1+num2;
System.out.println(result1);//90
short num3=60;
//byte+short-->int+int-->int 因为没有真实大小没有short大,所以也可以用short接收
short result2=(short)(num2+num3);
System.out.println(result2);//100
4.boolean类型不能发生强制数据转换。
ASCII编码表
48代表 0;65代表A;97代表a;
char zifu1='0';
System.out.println(zifu1+0);//48
//或
int num=zifu1;
System.out.println(num);//48
//Unicode码表:万国码。前0-127与ASCII相同。
char zifu2='中';
System.out.println(zifu2+0);//20013
运算符
运算符:进行 特定操作的符号。例如:+。
表达式:用运算符连起来的式子叫表达式。例如:20+5.又例如a+b。
四则运算:
加:+
减:-
乘:*
除:/
取模(取余数):% 只有整数除整数。
注意事项:
1.一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的的那种。
eg: int+double–>double+doubule
加号的多种用法
四则运算中,常见的有三种:
1.对于数值,那就是加法。
2.对于字符类型来说,在计算之前,char会被提升为int,然后再计算。
3.对于字符串String(首字母大写,并非关键字)来说,加号代表字符串连接操作。
String str1="Java";
//优先级问题String+int-->String
System.out.println(str1+20+30);//Java2030
System.out.println(str1+(20+30));//Java50
自增自减运算符
自增运算符:++
自减运算符:–
基本含义:让一个变量涨(降)一个数字1.
使用格式:卸载变量名称之前,或卸载变量名称之后。例如++num或num++
使用方式:1.单独使用。2.混合使用。
区别:1.单独使用时,前++和后++无区别。
2.混合使用时:
(1)如果前++,那么变量立刻马上+1,然后拿着结果进行使用。先加后用
(2)如果后++,首先使用变量本来的数值,再让变量+1。 先用后加
//单独使用时
int num1=10;
++num1;//或者num1++
System.out.println(num1);//11
//混合使用时
int num2=20;
System.out.println(++num2);//21
System.out.println(num2);//21
int num3=30;
System.out.println(num3++);//30
System.out.println(num3);//31
注意事项:
只有变量才能使用自增、自减运算符。常量不可发生改变,所以不能用。
赋值运算符
基本赋值运算符:=
复合赋值运算符:
a +=3 相当于 a=a +3
注意事项:
1.常量不行,必须变量。
2.其实隐含了一个强制类型转换。
比较运算符
1.结果一定是boolean值,成立ture 不成立false
3.如果进行多次判断,不能连着写
逻辑运算符
与 &&
或 ||
非 !
System.stem.out.println(true && false);//false
System.stem.out.println(3 < 4 && 10 > 5);//true
System.stem.out.println(!false);//true
与,或 具有短路效果:如果根据左边已经可以判断出最终结果,那么右边的代码将不再执行,从而节省一定的性能。
int a =10;
System.stem.out.println(3 < 4 && ++a > 100);//flase
System.stem.out.println(a);//10
1.逻辑运算符只能用于boolean值。
2.与 或左右各自有一个boolean值,取反只要有唯一的一个。
3.与 或,如果有多个条件,可以连续写:
eg: 条件A&&条件B&&条件C
4.对于1<x<3, 要写称 1 < x && x < 3
三元运算符
一元运算符:只需要一个数据就可以进行操作的运算符。例如:取反| ++ 自减–
二元运算符:两个 加法+ 赋值=
三元运算符:三个
格式:
数据类型 变量名称 = 条件判断 ? 表达式A :表达式B;
首先判断条件是否成立;
如果成立为true,表达式A的值赋值给左侧变量。
如果 false, B。
int a =10;
int b =20;
int max =a > b ? a : b;
System.stem.out.println("最大值:"+max);//最大值:20
1.必须同时保证A和B都符合左侧数据类型的要求。
2.三元运算符的结果必须被使用。
可以System.stem.out.println(a > b ? a : b)
不可以a > b ? a : b