注释不被执行,是给写代码人看的
public class Hello { public static void main(String[] args){ //单行注释 /* 多行注释 */ /** * * javaDOC:文档注释 * */ System.out.print("Hello,World!"); } }
出现Cannot resolve symbol 'String'即无法解析String时,
表明未配置SDK---->打开Project Structure,进行配置JDK且下面要改成相应的版本号。
所有标识符都应该以字母(A-Z或a-z),美元符($),下划线(_)开始。
首字符之后可以是字母(A-Z或a-z),美元符($),下划线(_)或数字组合。
标识符大小写敏感。
不建议使用中文拼音。
变量的使用严格符合规定,变量必须定义才能使用。
1字节相当于二进制的8位
byte 1字节。
short 2字节。
int 4字节。
long 8字节。 数字后面加个L。
float 4字节。 数字后面加个F。
double 8字节。
boolean 表示是或非。
位(bit):1100 1010是一个8位二进制数。
字节(byte):数据处理的基本单位,习惯用B表示。
1B=8b
字符:指计算机中使用的字母、数字、字和符号。
二进制0b、八进制0、十六进制0x。
float 缺点:有限、离散、舍入误差、大约、接近但不等于。
最好完全避免使用float进行数值比较。
float f=0.1f;//0.1 double d=1.0/10;//0.1 System.out.println(f==d);//flase System.out.println(f); System.out.println(d); float d1=21551354513f; float d2=d1+1; System.out.println(d1==d2);//true 运行结果 false 0.1 0.1 true
所有字符本质都是数字
char c1='a'; char c2='中'; int c3=20013; System.out.println(c1); System.out.println((int)c1);//强制转换 System.out.println(c2); System.out.println((int)c2);//强制转换 System.out.println((char)c3);//强制转换 //所有的字符本质还是数字 char c4='\u0061'; System.out.println(c4);//a 运行结果 a 97 中 20013 中 a
\t相当于一个Tab键 \n换行
if (flag){}//默认 flag=true 相当于if (flag=true){}
if语句中flag默认为true。
高——>低,强制转换。
低——>高,自动转换。
注意点: 1、不能对布尔值进行转换。 2、不能把对象类型转换为不相干的类型。 3、在把高容量转换到低容量的时候,强制转换。 4、转换的时候存在内存溢出的问题,或者精度问题。
操作较大的数时,注意溢出问题。
int money=10_0000_0000; int years=20; int total=money*years;//-1474836480 溢出 long total2=money*years; System.out.println(total); System.out.println(total2);//-1474836480 //默认是int,转换前已经存在问题。算的时候用int算完后才转换为long. long total3=money*((long)years); //先把一个转换为long,算的时候用long算。 System.out.println(total3);//200_0000_0000 运行结果 -1474836480 -1474836480 20000000000
不强制转换时,默认int。
public class Demo06 { static double salary = 2500; String name;//实例变量 int age; public static void main(String[] args) { String name ="akkl"; char x='X'; double pi=3.1415; //变量类型 变量名字=new Demo06(); Demo06 demo06 = new Demo06(); System.out.println(demo06.age);//0 System.out.println(demo06.name);//null //布尔值默认false,处理基本类型,其他都是null。 System.out.println(salary);//2500.0 }
Demo06是类名,main是方法名。
实例变量:用在类里面,方法外面。
局部变量:用在方法里面,切只在本方法内有用。使用前必须声明,初始化值。
实例变量前加static后,方法内使用就不行要在new了。
实例变量有默认值,布尔值默认false,除了基本类型其他都默认null。
变量命名规范 1、见名知意 2、类成员变量、局部变量、方法名:首字母小写,驼峰原则:monthSalary 3、常量:大写字母和下划线。 4、类名:首字母大写的驼峰原则:GoodMan。
初始化后不能再改变的值。一般用大写字母。
常量格式:final 常量名=值;
修饰符:不存在先后关系。
final,static都是修饰符。
public class Demo07 { static final double PI=3.14; //final static double PI=3.14; public static void main(String[] args) { System.out.println(PI);//3.14 } }
int a=10; int b=20; System.out.println(a/b);//0 System.out.println(a/(double)b);//0.5 运行结果 0 0.5
因为a、b为int 所以结果为int,结果是0.5所以int型为0。
将其中一个强制转换为double则可以输出0.5。
long e=3413213844L; int f=213; short g=10; byte w=8; System.out.println(e+f+g+w);//long System.out.println(f+g+w);//int System.out.println(g+w);//int
有long时,结果为long。 有double结果为double。 其他的均为int。
关系运算符的结果:正确、错误
int t=10; int p=20; System.out.println(t>p);//false System.out.println(t<p);//true System.out.println(t==p);//false System.out.println(t!=p);//true
int n=3; int m=n++;//n++ n=n+1 System.out.println(n);//4 int k=++n; System.out.println(n);//5 System.out.println(m);//3 System.out.println(k);//5
m=n++ 先将n的值给m,然后再自增。
m=++n n先自增,再把n的值给m。
java没办法实现2^3的数学运算。
很多运算要使用工具类实现。
double pow = Math.pow(2, 3);//相当于2*2*2 System.out.println(pow);//8.0
与&&、或||、非!
boolean a1=true; boolean b1=false; System.out.println("a1&&b1:"+(a1&&b1));//false System.out.println("a1||b1:"+(a1||b1));//true System.out.println("!(a1&&b1):"+!(a1&&b1));//true 运行结果 a1&&b1:false a1||b1:true !(a1&&b1):true
因为与运算是有否出否
c1<4是否,所以结果是否,不再进行接下来的运算。
int c1=5; boolean d1=(c1<4)&&(c1++<4); System.out.println(d1);//false System.out.println(c1);//5
&,|,^,~
d1=0011 1100 f1=0000 1101 逐位运算 d1&f1=0000 1100//与 d1|f1=0011 1101//或 d1^f1=0011 0001//异或 ~f1=1111 0010//非
左移,右移:<<,>>:在二进制中进行移动。
System.out.println(2<<3);//16 System.out.println(2>>1);//1 运行结果 16 1
2用二进制表示 0000 0010
左移3位 0001 0000=16
右移1位 0000 0001=16
String
从左到右运算,当出现String时,后面的都按String输出。
括号的优先级比运算符更高,所以括号内可正常输出。
//字符串连接 + String int a=10; int b=20; System.out.println(""+a+b);//1020 //从左到右运算,当出现String时,后面的都按String输出 System.out.println(a+b+"");//30 System.out.println(a+b+""+a);//3010 //括号的优先级比运算符更高,所以括号内可正常输出 System.out.println(a+b+""+a+(a+a+b));//301040 System.out.println(a+b+""+a+b+(a+a+""+b+a));//301020202010
/* x?y:z 即:如果x==true,则结果为y,否则为z。 */ int score=80; String type = score <60 ?"不及格":"及格"; System.out.println(type);//及格
package包必须在最上面。
关于分包 一般利用公司域名倒置作为包名。 如:www.baidu.com 包名为com.baidu.www
*是导入这个包下的所有的类
package com.Java.Basics;//package必须放在最上面。 //导入包叫import //*是导入这个包下所有的类。 import com.Java.Basics.*; public class Demo10 { /* 关于分包 一般利用公司域名倒置作为包名。 如:www.baidu.com 包名为com.baidu.www */ public static void main(String[] args) { } }
javadoc是用来生成自己API文档的。
/** * @author 作者名 * @version 版本号 * @since 指明需要最早使用的jdk版本号 * @param 参数名 * @return 返回值情况 * @throws 异常抛出情况 */
在DOS窗口生成javados文档:
javadoc -encoding UTF-8 -charset UTF-8 JavaDoc.java
用IDEA生成:Tools---->Generate JavaDos
/** * @author aaa * @version 1.0 * @since 1.8 */ public class JavaDoc { String name; /** * @author * @param name * @return * @throws Exception */ public String test(String name) throws Exception{ return name; } }
上面优先级高于下面
运算符说明 | Java运算符 |
---|---|
分隔符 | . {} [] () , ; |
单目运算符 | ++ -- ~ ! |
强制类型转换运算符 | (type) |
乘、除、余 | * / % |
加、减 | + - |
移位运算符 | << >> >>> |
关系运算符 | < > <= >= instanceof |
等价运算符 | == != |
按位与 | & |
按位异或 | ^ |
按位或 | | |
条件与 | && |
条件或 | || |
三目运算符 | ?: |
赋值 | = += -= *= /= &= |= ^= %= <<= >>= >>>= |