JAVA基本语法
Java注释、标识符、关键字
注释
书写注释是一个非常好的规范!!!(平时写代码要注意规范)
1.单行注释 // 修改样式 file–>settings–>Editor–>Color Scheme–>java -->comments–>Line comment 修改即可 无法修改时 将Inherit values from:前的勾取消掉
2.多行注释 /* */
3.文档注释 /** */
/**
*
*/
有趣的代码注释 可以百度去搜搜看看
标识符
关键字:
1.标识符只能以字母(A-Z或a-z),美元符($),或者下划线(_)开头
2.首字母后可为字母(A-Z或a-z),美元符($),或者下划线(_)以及数字的各种组合
3.不能以关键字作为变量名或者方法名
4.标识符是大小写敏感的
5.合法标识符举例:age、$salary、_value、value
6.非法标识符举例:123abc、-salary、#abc
7.可以使用中文命名 但不建议 不要使用拼音 很Low
数据类型
强类型语言:变量使用要严格使用
弱类型语言:变量使用随意(VB JS)
Java类型
1.基本类型
数值类型 : 整数型 浮点型 字符型
整数型:byte 占一字节 -128~127
short 占两字节 -32768~32767
int 占四字节 -2147483648~2147483647
long 占八字节
浮点型: float 4字节
double 8字节(常用)
字符类型 char 2字节
Boolean类型:占一位仅为true 或者false
public class demo01 {
public static void main(String[] args) {
//八大基本数据
//整数
int num1 = 10;//最常用
byte num2 = 20;
short num3 = 30;
long num4 = 30L;//Long类型数字后加L
//浮点数
float num5= 10.1F;//float类型要在小数后加F
double num6 = 3.1415926535891243;
//字符型
char name = 'A';//只能一个字符
//字符串
String name1 = "秦疆";//string 不是关键字
//布尔型
boolean flag =True;//True or Flase
}
}
2.引用类型:类 接口 数组
杂文
位bit :八位二进制 11001100
字节byte :计算机处理的基本单位 B表示
1B=8b(bit)
字符:计算机使用的字母 数字 字和符号
扩展
整数扩展: 进制 二进制0b 十进制 八进制0 十六进制 0x
int i =10;
int i2=010;//八进制0
int i3 =0x10;//十六进制
int i4 = 0b10;//二进制
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
10
8
16
2
浮点数 拓展 银行?钱?
float 有限 离散 舍入误差 接近但不等于
最好避免使用浮点数比较大小
float f = 0.1f;//0.1
double d =1/10;//0.1
System.out.println(f==d);//false 不等判断 错误
float d1=233323462163f;
float d2=d1+1;
System.out.println(d1==d2);//true 判断错误
false
true
必须比较时 可用减法表示
字符拓展
编码 Unicode 表:(97=a 65=A)2字节 0-65536 2^16=65536 U0000 UFFFF
char c1 ='a';
char c2 ='中';
System.out.println(c1);
System.out.println((int)c1);//强制转化
System.out.println(c2);
System.out.println((int)c2);//强制转化
char c3='\u0061';
System.out.println(c3);
a
97
中
20013
a
转义符
转义字符 | 意义 | ASCII码值(十进制) |
---|---|---|
\b | 退格,将当前位置移到前一列 | 008 |
\f | 换页 将当前位置移到下页开头 | 012 |
\n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
\r | 回车(CR) ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
\v | 垂直制表(VT) | 011 |
\\ | 代表一个反斜线字符’’' | 092 |
\’ | 代表一个单引号(撇号)字符 | 039 |
\’’ | 代表一个双引号字符 | 034 |
\0 | 空字符(NULL) | 000 |
\ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 |
\uhhhh | 1到2位十六进制所代表的任意字符 | 二位十六进制 |
布尔值扩展
boolean flag =true;
if (flag==true) {}//新手
if (flag){}//老手 意思一样
类型转换
1.强制转换
转换顺序:byte ,char,short -->int -->long -->float–>double
由高到低,则需强制转换 括号里加数据类型
public class demo03 {
public static void main(String[] args) {
int i = 128;
byte b =(byte)i;
System.out.println(i);
System.out.println(b);
}
}
128
-128
//出现内存溢出 byte最大127
注意点:
1.不能对布尔值转换
2.不能把对象转换为不相干的类型
3.高容量转低容量的时候,需要强制转换
4.转换的时候可能存在内存溢出,或者精度问题
2.自由转换
低到高转换 直接操作
3.溢出问题
public class demo04 {
public static void main(String[] args) {
//操作比较大的数时,注意溢出问题
//数字之间可用下划线隔开
int money = 10_0000_0000;
int year = 20;
int total =money * year;//溢出
long total2 = money *year;//仍溢出
long total3 = money * (long)year;
System.out.println(total);
System.out.println(total2);
System.out.println(total3);
}
}
-1474836480
-1474836480
20000000000
注意:小写l 容易看成数字1 多用大写L
变量
变量即可以变化的量 Java是强类型语言 每个变量都必须声明类型
Java变量是程序中最基本的储存单元,要素包括变量名,变量类型和作用域
type varName [=value][{,varName[=value]}]
//数据类型 变量名=值; 可以用逗号隔开来声明多个变量 但不建议使用
注意事项:
- 每个变量都有类型,可以为基本类型,也可为引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整语句,每一次声明都要以分号结束
变量作用域
类变量 关键字 static
实例变量 无关键字
局部变量
public class Demo06 {
//类对象 static
static double salary =2500;//随类产生 随类消失
//属性: 变量
//实例变量:从属于对象 ; 如果不自行初始化 类型默认值为0 0.0
// 布尔值:默认为false
//除基本类型外 其他默认为null
String name;
int age;//实例变量只有在 类实例化后可被调用
//main方法
public static void main(String[] args) {
//局部变量:必须声明 和初始化值 在方法中声明使用
int i=10;
System.out.println(i);
Demo06 demo06 = new Demo06();
System.out.println(demo06.age);
System.out.println(salary);
}
//其他方法
public void add(){
System.out.println(i);//不可调用局部变量
}
}
变量命名规范
1.所有变量、方法、类名:**见名知意 **
2.类成员变量:首字母小写和驼峰原则: monthSalary
除第一个单词以外 后面的单词首字母大写 lastName
3.局部变量:首字母小写和驼峰原则
4.常量:大写字母和下划线 MAX_VALUE
5.类名:首字母大写和驼峰原则:Man GoodMan
6.方法名:首字母小写和驼峰原则:run(),runRun()
常量
常量 初始化后不会在改变值! 不能变动的值
final 常量名 = 值;
final double PI=3.14;
常量名一般使用大写字符
运算符
优先级(算数运算符>位运算符>关系运算符>赋值运算符)
算术运算符 :+,-,*,/,%,++,–
赋值运算符 :=
关系运算符:>,<,>=,<=,==,!=, instanceof
逻辑运算符: &&,||,!
位运算符:&,|,^,~,>>,<<,>>>(了解)
条件运算符:?:
扩展赋值运算符:+=,-=,*=,/=
运算中含float/double /long输出结果为float/double/long型 否则为int
package operator;
public class Demo02 {
public static void main(String[] args) {
long a= 12312312L;
int b =123;
int c= 10;
byte d= 8;
float e= 10.1F;
System.out.println(a+b+c+d);//long 运算中含long/double 输入结果为long/double型 否则为int
System.out.println(b+c+d);//int
System.out.println(c+d);//int
System.out.println(c+e);
System.out.println(a+b+c+d+e);
}
}
12312453
141
18
20.1
1.2312463E7
package operator;
public class Demo03 {
public static void main(String[] args) {
//关系运算符返回结果:正确 错误 布尔值
int a=10;
int b=20;
int c=21;
System.out.println(c%a);//取余
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a!=b);
}
}
1
false
true
true
package operator;
public class Demo04 {
public static void main(String[] args) {
//++ -- 自增自减 一元运算符
int a =3;
int b= a++;//a++ a=a+1 当++在后面 先把a赋给b a再自加
//a=a+1 在后面
//a=a+1在前面
int c=++a;//++a a=a+1 当++再前面 先把a自加 再把a赋给c
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算 2^3 2*2*2=8
double pow=Math.pow(3,2);
System.out.println(pow);
}
}
5
3
5
9.0
package operator;
//逻辑运算符
public class Demo05 {
public static void main(String[] args) {
//与(and) 或(or) 非(取反)
boolean a= true;
boolean b= false;
System.out.println("a && b :"+(a && b));//false
System.out.println("a || b :"+(a || b));//true
System.out.println("! (a && b ):" +(!(a && b)));//true
//短路运算
int c =5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);//false
System.out.println(c);//5
}
}
/*
A=00111100
B=11001111
A&B=00001100 位与 同一为1 其余为0
A|B=11111111 位或 有1为1 全零为0
A^B=00001100 同或 相同为1 不同为0
~A=11000011 位非 取反
<<左移 2= 0001 2<<3 1000=16
>>右移 16=1000 16>>3 0001=2
*/
>>:带符号右移。正数右移高位补0,负数右移高位补1。比如:
4 >> 1,结果是2;-4 >> 1,结果是-2。-2 >> 1,结果是-1。
>>>:无符号右移。无论是正数还是负数,高位通通补0。
对于正数而言,>>和>>>没区别。
package operator;
public class Demo07 {
public static void main(String[] args) {
int a=10;
int b=20;
a+=b;//a=a+b
a-=b;//a=a-b
System.out.println(a);
//字符串拼接 + ,string
System.out.println(""+a+b);//字符串在前 后为字符串
System.out.println(a+b+"");//先运算 后拼接
//三元运算符
//x?y:z
//如果 x==true ,则结果为y,否则结果为c
int score =80;
String type = score <60 ? "不及格":"及格";
System.out.println(type);
}
10
1020
30
及格
包机制
区别类名
package pkg1[.pkg2]
import packet.basic.*;导入packet.basic中所有的类
JavaDoc
https://docs.oracle.com/javase/8/docs/api/?xd_co_f=8ea595d3-17b0-4785-bd65-68283ed4a5
参数属性
@author 作者名。。。
通过cmd javadoc. 参数 Java文件(xx.java)
通过IDEA:https://www.cnblogs.com/toutou/p/javadoc.html#_label0