//单行注释
/* 多行注释 */
JavaDoc/** @Description JavaDoc */
Java所有组成部分都需要名字,类名、变量名以及方法名都被称为标识符
String man
和String Man
,两个变量完全不同// 错误示范:a必须初始化
String a;
System.out.println(a);
// 正确示范
String a = "hello";
System.out.println(a);
八大数据类型要记牢!
// 进制的表示
int i = 10; //十进制
int i3 = 010; //八进制:前面加上0,以指明是八进制
int i4 = 0x10; //十六进制(0~9,A~F):前面加上0x,以指明十六进制(x不区分大小写)
// 0x10的二进制:0001 0000
// 0x10的十进制:0*16^0 + 1*16^1 = 16
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
>>>
10
8
16
// 其他
long num1 = 30L //long类型要在数字末尾加L
float num2 = 50.1F //float类型要在数字末尾加F
char name1 = “A” //只能有一个字符
所以:byte
类型占2字节,一个字节有8位(bit),则2字节占2^8
=256位。又因为有正负数,所以byte
类型可以使用的数字范围为-128~127
(因为正数部分包含0,所以要减1)
低------------------------------------------>高
byte,short,char -> int -> long -> float -> double
强制类型转换:高转低
自动类型转换:低转高
byte b1 = (byte)i; //强制类型转换
double b2 = i; //自动类型转换
变量名、变量类型、作用域
public class Demo08{
//类变量(有static)
static double salary = 2500;
//实例变量:从属于对象(方法外,类里)(没有static)
/**从属于Demo08这个类,通过这个类才能使用。
不用初始化!有默认值*/
String name;
int age;
public void main(String[] args){
//局部变量:必须声明和初始化值(在方法里面)
int i = 10;
//输出局部变量
System.out.println(i);
//输出实例变量
Demo08 demo08 = new Demo08();
System.out.println(demo08.age);
System.out.println(demo08.name);
//输出类变量
System.out.println(salary);
}
}
>>>
10 //i
0 //demo08.age的默认值
null //demo08.name的默认值
2500.0 //salary
所有变量、方法、类名:见名知意
final
//修饰符,不区分前后(也可static final)
final static double PI = 3.14;
a++:++在后时,先赋值,再自增;
++a:++在前时,先自增,再赋值;
int a = 5;
int b = a++;//a++加在后,先给b赋值,再自增;
System.out.println(a);//a=6
System.out.println(b);//b=5
================================================
int c = ++a;//++a加在前,先自增,再赋值给c;
System.out.println(a);//a=6;
System.out.println(c);//c=6;
int q = 10;
int w = 20;
System.out.println(q<w && w>30);//(false),q30错误,
// 可解释为:q30同时两条成立,结果为true,所以最后结果为"false"
System.out.println(q<w || w>30);//(true),q30错误,
// 可以解释为:q30其中一条成立,结果就为true,所以最后结果为"true"
System.out.println(!(q<w));//(false),q
// 可以解释为:q应该不(非)小于w,但是实际上q
当前面为“false”时,后面的将不执行,只有“true”才会运行,这就叫短路运算。
int z = 5;
boolean x = (z<4)&&(z++<4);//由于(z<4)不成立为false,(z++<4)就不运行
System.out.println(x);//(false)
System.out.println(z);//(5)由于(z++<4)没有运算,所以z没有自增
& (1):全部为1才为1,否者为0
| (0):全部为0才为0,否者为1
^(同0):相同为0,否者为1
~(取反):取二进制相反的数
A = 1100 0011
B = 1001 0110
---------------
A&B= 1000 0010
A|B= 1101 0111
A^B= 0101 0101
~B = 0110 1001
"<<"二进制左位移=代表*2
">>"二进制右位移=代表/2
+=,-=,*=,/=;()
int a = 5, b = 10;
a+=b;//a=a+b(15)
a-=b;//a=a-b(-5)
a*=b;//a=a*b(50)
a/=b;//a=a/b(0.5)
在“+”号前出现string类型时,他会把“+”后面的一操作数,转换成steing类型,进行拼接。
int a = 5, b = 20;
System.out.println("yes"+a+b);//(yes520)
System.out.println(a+b+"yes");//(25yes)
System.out.println("yes"+(a+b));//(yes25)
System.out.println(""+a+b+"yes");//(520yes)
System.out.println(""+a+b+(a+b)+"yes");//(52025yes)
x? y:z //x值如果为true=y,如果为false=z;
int score = 60;
int xm = 70;
int xg = 49;
int xh = 60;
System.out.println("xm:"+(xm>=score ?"及格":"不及格"));//(xm:及格)
System.out.println("xg:"+(xg>=score ?"及格":"不及格"));//(xg:不及格)
System.out.println("xh:"+(xh>=score ?"及格":"不及格"));//(xh:及格)
后期可以使用”if"做
“包的本质就是文件夹”
package pkg1[.pkg2[.pkg3...]]//定义包
import package1[.package2...].(classname|*);//导入包,*导入这个包下所以的类
尽量不要把包名字重复
/**
* @author ssxxz
* @version 1.0
* @since 1.8
*/
生产文档:javadic+参数+java文件
cmd
javadoc -encoding UTF-8 -charset UTF-8 Doc.java