- 单行注释 (//)
- 多行注释 ()
- 文档注释
public class HelloWord {
public static void main(String[] args) {
//输出一个Hello,Word!
System.out.println("Hello,Word");
//多行注释:可以注释多行文字
//JavaDoc:文档注释
}
}
JAVA基础02:标识符
Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符
-
关键字
abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implements import instanceof int interface long native new package private protected public return strictfp short static super switch synchronized this throw throws transient try void volatile while
-
注意点:所有标识符都应该以字母(A-Z或者a-z),美元符($),或者下划线(_)开始
-
首字符后可以是字母(A-Z或者a-z),美元符($),或者下划线(_)或数字任意字符组合
-
不能使用关键字作为变量名或方法名
-
标识符大小写敏感
-
合法标识符举例:age、$salary、_value、__1_value
-
非法标识符举例:123abc、-salary、#abc
public class Demo01_标识符 { public static void main(String[] args) { String Ahello="qinjiang"; String hello="qinjiang"; String $hello="qinjiang"; String _hello="qinjiang"; String 王者荣耀="永恒钻石"; System.out.println(王者荣耀); } } -
-
强类型语言
- 要求变量的使用严格符合规定,所有变量都必须先定义后才能使用
-
弱类型语言
-
Java数据类型分为两类
-
public class Demo02_数据类型 { public static void main(String[] args) { //八大基本类型 //整数 int num1=10; byte num2=20; short num3=30; long num4=40L; //小数:浮点数 float num5=50.1F; double num6=3.1415926435648; //字符 char name='A'; //字符串,String不是关键字,类 //String name1="哈哈"; //布尔值:是非 boolean flag=true; //boolean flag=false; System.out.println(num1); System.out.println(num2); //整数拓展: 进制 二进制0b 十进制 八进制0 十六进制 int i=10;// int i2=010;//八进制 int i3=0x10;//十六进制 System.out.println(i); System.out.println(i2); System.out.println(i3); System.out.println("============================"); //============================================ //浮点数拓展? 银行业务怎么表示? 钱 //============================================ //float 有限 离散 舍入误差 大约 接近但不等于 //double、 //最好完全使用浮点数比较 //最好完全使用浮点数比较 //最好完全使用浮点数比较 float f=0.1f;//0.1 double d=1.0/10;//0.1 System.out.println(f==d);//false float d1=23334224f; float d2=d1+1; System.out.println(d1==d2);//true //============================================ //字符拓展? //============================================ System.out.println("============================"); char c1='a'; char c2='中'; System.out.println(c1); System.out.println((int)c1);//强制转换 97 System.out.println(c2); System.out.println((int)c2);//强制转换 20013 //所有字符本质还是数字 //编码 Unicode 表 : 97=a 65=A //U0000 UFFF char c3='u0061'; //a System.out.println(c3);//a //转义字符 // t 制表符 // n 换行 System.out.println("HellonWord"); System.out.println("============================"); //对象 内存分析 String sa=new String("hello word"); String sb=new String("hello word"); System.out.println(sa==sb);//false String sc="hello word"; String sd="hello word"; System.out.println(sc==sd);//true //布尔值拓展 boolean flag1=true; if(flag1==true){} //新手 if (flag1){} //老手 //Less is More! 代码要精简已读 } } -
基本类型(8种)
-
整数类型:
byte占1个字节范围:-128~127
short占2个字节范围:-32768~32767
int占4个字节范围:-2147483684~2147483647
long占8个字节范围:-9223372036854775808~9223372036854775807
-
浮点类型:
float占4个字节
double占8个字节
-
字符类型:char占2个字节
-
boolean类型:占1位其值只有true和false两个
-
-
引用类型(3种)
-
类
-
接口
-
数组
-
由于Java是强类型语言,所以要进行运算的时候,需要用到类型转换。
低------------------------------------------------->高
- byte,short,char->int->long->float->double
运算中,不同类型的数据先转化为同一类型,然后进行运算。
强制类型转换
自动类型转换
public class Demo03_类型转换 {
public static void main(String[] args) {
int i=128;
byte b=(byte) i;
double d=i;
//强制转换 (类型)变量名;高->低
//自动转换 低->高
System.out.println(i); //128
System.out.println(b); //内存溢出 -128
System.out.println(d); //128.0
System.out.println("========================");
System.out.println((int)23.7); //23
System.out.println((int)-47.89f);//-47
System.out.println("========================");
char c='a';
int i1=c+1;
System.out.println(i1);//98
System.out.println((char)i1);//b
}
}
public class Demo04_内存溢出 {
public static void main(String[] args) {
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money=10_0000_0000;
System.out.println(money);//1000000000
int year=20;
int total=money*year; //-1474836480
int total2=money*year; //-1474836480
long total3=money*((long)year);//20000000000
System.out.println(total);//-1474836480,计算内存溢出
System.out.println(total2);//默认是int,转换前已经出现问题了?
System.out.println(total3);//先把一个数转换为long
//L l
}
}
JAVA基础05:变量 常量 作用域
变量
-
变量是什么?:就是可以变化的量!
-
Java语言是一种强类型语言,每个变量都必须声明其类型。
-
Java变量是程序的最基本单位,其要素包括变量名,变量类型和作用域。
type varName [=value] [{,varName[=value]}]; //数据类型 变量名 = 值; 可以使用逗号隔开来声明多个同类型变量。 -
public class Demo05_变量 { public static void main(String[] args) { //int a ,b, c; //int a=1,b=2,c=3; //程序可读性 String name="鲁班七号"; char c='s'; double d=3.14; } } -
注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符。
- 变量声明是一条完整的语句,每一个声明都必须以分号结束
变量作用域
-
类变量
-
实例变量
-
局部变量
public class Demo06_变量作用域 { //类变量 static static double salary=2500; //属性:变量 //实例变量:从属于对象;如果不初始化,这个类型的默认值为0 0.0 //布尔值:默认值false String name; int age; //main方法 public static void main(String[] args) { //局部变量:必须声明和初始化值 int i =10; System.out.println(i); //变量类型 变量名=new Demo06_变量作用域(); Demo06_变量作用域 demo06=new Demo06_变量作用域(); System.out.println(demo06.age);//0 System.out.println(demo06.name);//null //类变量 static System.out.println(salary);//2500.0 } }
常量
-
常量:初始化后不能再改变值。
-
所谓常量可以理解为一种特殊的变量,它的值设定后,在程序运行过程中不允许改变。
public class Demo07_常量 { //final ,static为修饰符,不存在先后顺序 final static double PI=3.14; public static void main(String[] args) { System.out.println(PI);//3.14 } } -
常量名一般使用大写字符。
变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary
- 局部变量:所字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
运算符
Java语言支持如下运算符:
-
算数运算符:+ ,-, *, /, %, ++, –
-
赋值运算符:=
-
关系运算符:>,<,>=,<=,==,!=instanceof
-
逻辑运算符:&&,||,!
-
位运算:&,|,^,~,>>,<<,>>>(了解!!!)
-
条件运算符:?:
-
扩展赋值运算符:+=,-=,*=,/=
package javabase; public class Demo08_基本运算符 { public static void main(String[] args) { //二元运算 //Ctrl+D :赋值当前行到下一行 int a=10; int b=20; int c=30; int d=40; System.out.println("==========="); System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(a/(double)b); System.out.println("==========="); long l=313144141l; int i=123; short s=10; byte b1=8; System.out.println(l+i+b1+s);//Long System.out.println(i+b1+s);//Int System.out.println(l+i+b1+s);//Int System.out.println("==========="); //关系运算符返回的结果:true false 布尔值 //if int i1=10; int i2=20; int i3=73; //取余 ,模运算 System.out.println(i3%i1);//73/10 =3 System.out.println(i1>i2); System.out.println(i1package javabase; public class Demo09_逻辑运算符位运算符 { public static void main(String[] args) { //与(and) 或(or) 非(取反) boolean a=true; boolean b=false; System.out.println("a&&b:"+(a&&b));//逻辑与运算:两个变量都为真,则真 System.out.println("a||b:"+(a||b));//逻辑与运算:两个变量一个为假,则假 System.out.println("!a&&b:"+!(a&&b));//如果为真,则变为假,如果为假,则变为真 //短路运算 int c=100; boolean d=(c<90)&&(c++<90); System.out.println(d);//false System.out.println(c);//100 //位运算 System.out.println(2<<3);//2*2*2*2=16 int a1=10; int b1=20; a1+=b1;//a1=a1+b1 a1-=b1;//a1=a1-b1 System.out.println(a1); //字符串连接符 + System.out.println(a1+b1);//30 System.out.println(""+a1+b1);//1020 System.out.println(a1+b1+"");//30 } }package javabase; //三元运算符 public class Demo10_三元运算符 { public static void main(String[] args) { //x?y:z //如果x==true,则结果为y,否则结果为z int score =100; String type=score>=90?"优秀":"垃圾"; //if System.out.println(type); } }



