注释、标识符、关键字
注释并不会被执行,是写给写代码或看代码的人看的,让别人看懂自己的代码。
单行标注、多行标注、文档标注
public class Main {
public static void main(String[] args) {
//单行注释
//输出一个Hello world
System.out.println("Hello world!");
}
}
public class Main {
public static void main(String[] args) {
/*
多行注释(可以注释一段文字)
输出一个Hello world
*/
System.out.println("Hello world!");
}
}
/**
* @Description Hello world
* @Author ZXL
*/
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
/***
* ii. ;9ABH,
* SA391, .r9GG35&G
* &#ii13Gh; i3X31i;:,rB1
* iMs,:,i5895, .5G91:,:;:s1:8A
* 33::::,,;5G5, ,58Si,,:::,sHX;iH1
* Sr.,:;rs13BBX35hh11511h5Shhh5S3GAXS:.,,::,,1AG3i,GG
* .G51S511sr;;iiiishS8G89Shsrrsh59S;.,,,,,..5A85Si,h8
* :SB9s:,............................,,,.,,,SASh53h,1G.
* .r18S;..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....,,.1H315199,rX,
* ;S89s,..,,,,,,,,,,,,,,,,,,,,,,,....,,.......,,,;r1ShS8,;Xi
* i55s:.........,,,,,,,,,,,,,,,,.,,,......,.....,,....r9&5.:X1
* 59;.....,. .,,,,,,,,,,,... .............,..:1;.:&s
* s8,..;53S5S3s. .,,,,,,,.,.. i15S5h1:.........,,,..,,:99
* 93.:39s:rSGB@A; ..,,,,..... .SG3hhh9G&BGi..,,,,,,,,,,,,.,83
* G5.G8 9#@@@@@X. .,,,,,,..... iA9,.S&B###@@Mr...,,,,,,,,..,.;Xh
* Gs.X8 S@@@@@@@B:..,,,,,,,,,,. rA1 ,A@@@@@@@@@H:........,,,,,,.iX:
* ;9. ,8A#@@@@@@#5,.,,,,,,,,,... 9A. 8@@@@@@@@@@M; ....,,,,,,,,S8
* X3 iS8XAHH8s.,,,,,,,,,,...,..58hH@@@@@@@@@Hs ...,,,,,,,:Gs
* r8, ,,,...,,,,,,,,,,..... ,h8XABMMHX3r. .,,,,,,,.rX:
* :9, . .:,..,:;;;::,.,,,,,.. .,,. ..,,,,,,.59
* .Si ,:.i8HBMMMMMB&5,.... . .,,,,,.sMr
* SS :: h@@@@@@@@@@#; . ... . ..,,,,iM5
* 91 . ;:.,1&@@@@@@MXs. . .,,:,:&S
* hS .... .:;,,,i3MMS1;..,..... . . ... ..,:,.99
* ,8; ..... .,:,..,8Ms:;,,,... .,::.83
* s&: .... .sS553B@@HX3s;,. .,;13h. .:::&1
* SXr . ...;s3G99XA&X88Shss11155hi. ,;:h&,
* iH8: . .. ,;iiii;,::,,,,,. .;irHA
* ,8X5; . ....... ,;iihS8Gi
* 1831, .,;irrrrrs&@
* ;5A8r. .:;iiiiirrss1H
* :X@H3s....... .,:;iii;iiiiirsrh
* r#h:;,...,,.. .,,:;;;;;:::,... .:;;;;;;iiiirrss1
* ,M8 ..,....,.....,,::::::,,... . .,;;;iiiiiirss11h
* 8B;.,,,,,,,.,..... . .. .:;;;;iirrsss111h
* i@5,:::,,,,,,,,.... . . .:::;;;;;irrrss111111
* 9Bi,:,,,,...... ..r91;;;;;iirrsss1ss1111
*/
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
标识符:Java所有的组成成分都需要名字。类名、变量名以及方法名都被成为标识符。
// 类名
public class Main {
// 方法名
public static void main(String[] args) {
// 变量名
String auther = "ZXL";
System.out.println("Hello world!");
}
}
标识符只能以大小写字母、$、_开头;首字母之后可以任意(除特殊字符外例如#);
标识符是大小写敏感的;可以使用中文,但不建议使用中文。
关键字是指在Java中已经被使用的名字例如public、class、static等等
数据类型(基本类型、引用类型)
Java要求变量的使用要严格符合规定。所有变量都必须先定义后才能使用。(强类型语言)
基本类型:数值类型、boolean类型
数值类型:整数类型、浮点类型、字符类型
整数类型:byte占1个字节范围为-128-127、short占2个字节范围-32768-32767
int占4个字节范围为-2147483648-2147483647、
long占8个字节范围为-9223372036854775808-9223372036854775807
浮点类型:float占4个字节、double占8个字节
字符类型:char占2个字节
boolean类型:占一位其值只有ture和false两个
引用类型:类、接口、数组
public class Main {
public static void main(String[] args) {
//八大基本数据类型
//整数
int num1 = 10;//最常用
byte num2 = 20;
short num3 = 30;
long num4 = 40L;//long类型在数字后面加个L
//小数、浮点数
float num5 = 50.1F;//float类型要在数字后面加个F
double num6 = 3.1415926;
//字符类型
char name = '赵';
//字符串
String namea= "ZXL";
//boolean类型
boolean flag = true;
//boolean flag = false;
System.out.println("Hello world!");
}
}
下面扩展一下
public class Main {
public static void main(String[] args) {
//整数拓展:进制
int i = 10;
int i2 = 010;//八进制
int i3 = 0x10;//十六进制
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.printf("==============================================");
//浮点数拓展 银行业务真么表示 /
//BigDecimal 数学工具类
float f = 0.1F;
double d = 1.0/10;
System.out.println(f==d);//false
System.out.println(f);
System.out.println(d);
//最好完全不用浮点数进行比较
//===================================================
//字符拓展
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 2字节 0-65536
//Excel 2^16 = 65536
char c3 = '\u0061';
System.out.println("c3");//a
//转义字符
// \t 制表符
System.out.println("Hello\tworld!");
// \n 换行
System.out.println("Hello\nworld!");
//
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb);//false
String sc = "hello world";
String sd = "hello world";
System.out.println(sc==sd);//true
//对象 从内存分析
//boolean扩展
boolean flag = true;
if (flag==true){ }//新手
if (flag){}//老手
}
}
类型转换
由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。
在运算中,不同类型的数据先转换为同一类型,然后再进行计算。
类型转换:强制类型转换、自动类型转换
低-----------------------------------------高
byte,short,char->int->long->float->double
public class Main {
public static void main(String[] args) {
int i = 128;
byte b = (byte)i;//内存溢出
//强置转换 (类型)变量名 高--低
System.out.println(i);//128
System.out.println(b);//-128
//自动转换 低--高
int j = 128;
double c = j;
System.out.println(j);
System.out.println(c);
/*
注意点
1.不能对boolean值进行转换、
2.不能把对象类型转换成不相干的类型
3.再把高容量转换为低容量时,强制转换,反之为自动转换
4.转换的时候可能存在内存溢出,或者精度问题!
*/
System.out.println("=======================");
System.out.println((int)23.7);//23
System.out.println((int)-45.89);//-45
System.out.println("=======================");
char d = 'a';
int e = d+1;
System.out.println(e);//98
System.out.println((char)e);//b
System.out.println("=======================");
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
System.out.println(money);
System.out.println("====================================");
int years = 20;
int total = money*years;//计算的时候溢出了
System.out.println(total);//-1474836480
System.out.println("====================================");
long total2 = money*years;//默认是int,转换之前已经存在问题了
System.out.println(total2);//-1474836480
System.out.println("====================================");
long total3 = money*((long)years);//先把一个数转换为long
System.out.println(total3);//20000000000
}
}
变量
变量就是可以变化的量!
java是一种强类型语言,每个变量都必须声明其类型。
变量包括:变量名、变量类型、作用域。
注意:类型可以是基本类型亦可以是引用类型
变量名必须是合法的标识符
变量声明是一条完整的语句,因此每一个声明都需要以分号结束
public class Main {
public static void main(String[] args) {
//int a,b,c;
//int a=1,b=2,c=3;
//最好写三行
int a = 1;
int b = 2;
int c = 3;
String name = "ZXL";
char x = 'X';
double pi = 3.14;
}
}
作用域:类变量、实例变量、局部变量
public class Main {
//可以定义属性:变量
static int allclick = 0;//类变量
String str = "Hello world!";//实例变量;如果不自行初始化,这个类型默认值为0 0.0
//boolean值默认为false
//除了基本类型,其余的都是null;
//main方法
public static void main(String[] args) {
int i = 0;//局部变量,
System.out.println(i);
//使用实例变量需要先new对应的类
//写下 new 类名
// new Main()按下alt+回车,生成下面语句
//变量类型 变量名字 = new Main();
Main main = new Main();
System.out.println(main.str);
//类变量 static
System.out.println(allclick);//可以直接用
}
//其他方法
public void add(){
}
}
常量
初始化后不能在改变值,不能变动的值;常量名一般使用大写字符
public class Main {
static final double PI = 3.14;
//修饰符不存在先后顺序
final static String NAME = "ZXL";
public static void main(String[] args) {
System.out.println(PI);
System.out.println(NAME);
}
}
变量命名规范
所有变量、方法、类名:见名知意
类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写 lastname lastName
局部变量:首字母小写和驼峰原则
常量:大写字母和下划线:MAX VALUE
类名:首字母大写和驼峰原则:Man,GoodMan
方法名:首字母小写和驼峰原则:run(),runRunt
运算符
算数运算符:+、-、*、/、%、++、--
赋值运算符:=
关系运算符:>,<,>=,<=,==,!=instanceof
逻辑运算符:&&,||,!
位运算符:&,|,^,~,>>,<<,>>>(了解!)
条件运算符?:
扩展赋值运算符:+=,-=,*=,/=
public class Main {
public static void main(String[] args) {
//二元运算符
//ctrl + d :复制当前行到下一行
int a = 10;
int b = 20;
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 c = 12513213212131L;
int d = 123;
short e = 10;
byte f = 8;
System.out.println(c+d+e+f);//long
System.out.println(d+e+f);//int
System.out.println(e+f);//int
System.out.println("=====================================");
//关系运算符返回的结果:正确、错误 布尔值
int i = 10;
int j = 20;
int k = 21;
System.out.println(i>j);
System.out.println(i<j);
System.out.println(i==j);
System.out.println(i!=j);
System.out.println(k%i);// k/i=2...1
System.out.println("==================================");
// ++ -- 自增 自减 一元运算符
int x = 3;
int y = x++;//a++ a=a+1,执行完这行代码后,先给y赋值,在自增
System.out.println(x);
int z = ++x;//执行完这行代码前,先自增,在给z赋值
System.out.println(x);
System.out.println(y);
System.out.println(z);
System.out.println("=====================================");
//幂运算 很多运算要借助工具类来运算
double pow = Math.pow(2,3);
System.out.println(pow);
System.out.println("===============================");
//逻辑运算符
//与(and) 或(or) 非(取反)
boolean m = true;
boolean n = false;
System.out.println(m&&n);//逻辑与运算:两个变量都为真,结果才为真
System.out.println(m||n);//逻辑或运算,有一个为真,则为真
System.out.println(!(m&&n));//如果是真则为假,如果是假则为真
//短路运算
System.out.println(n&&m);//n为假,则后面就不会执行
System.out.println("======================================");
//位运算
/*
A=0011 1100
B= 0000 1101
A&B =0000 1100
A|B =0011 1101
A^B =0011 0001
~B =1111 0010
2*8 = 16 2*2*2*2
<< *2
>> /2
*/
System.out.println(2<<3);
System.out.println("=====================================");
int a1 = 10;
int a2 = 20;
a1+=a2;//a1 = a1 + a2
System.out.println(a1);
System.out.println("===================================");
//字符串连接符
System.out.println(a1+a2);
System.out.println(""+a1+a2);
System.out.println(a1+a2+"");
System.out.println("=====================================");
//三元运算符
//x?y:z
//如果x==ture,则结果为y,否则为z
int score = 80;
String type = score<60?"不及格":"及格";
// if
System.out.println(type);
}
}
包机制
为了更好的组织类,java提供了包机制,用于区别类名的命名空间
package pkg1[.pkg2[.pkg3...]]
一般利用公司域名倒置作为包名;com.baidu.www
累了能够使用某一个包的成员,我们需要在java程序中明确导入该包。使用“import”语句可完成此功能。
import package1[.package2...].(classname|*);
import com.baidu.base.*;//导入这个包下的所有类
JavaDoc
javadoc命令是用来生成自己API文档的
参数信息:@author 作者号
@version 版本号
@since 指明需要最早使用的JDK版本
@param 参数名
@return 返回值情况
@throws 异常抛出情况
命令行生成:javadoc Java文件
![](https://i-blog.csdnimg.cn/blog_migrate/841d89185167e2ede5d046abf8221922.png)
![](https://i-blog.csdnimg.cn/blog_migrate/134a31c88370da01e0b54048ff65324b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2c03b9ca1f0cba457b4bb2a821aa0576.png)