java基础语法
平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到注释了。
注释并不会被执行,是给我们写代码的人看
书写注释是一个非常好的习惯
java中的注释有三种:
单行注释 可以注释一段数字//
多行注释 可以注释多行数字/**/
文档注释 /**
*/
关键字![]()

标识符注意点![]()

数据类型
变量

整数数据类型:byte shore int long
浮点数:float double
字符类型:char
布尔型:boolean
什么是字节![]()

拓展
整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010;八进制0
int i3 = 0x10;十六进制0x 0-9 A-f 15
浮点数拓展 银行业务怎么表示?钱
float double 有限 离散 含入误差 大约 接近但不等于
要用BigDecimal 数学工具类
最好不要完全使用浮点数进行比较
float f=0.1f;
double d=1.0/10;
System.out.println(f);
System.out.println(d);
System.out.println(f==d);
float f1=313131313131f;
float f2=f1+1;
System.out.println(f1==f2);
字符拓展
char l='w';
char n='中';
System.out.println((int)l);强制转换
System.out.println(l);
System.out.println((int)n);强制转换
System.out.println(n);
所有的字符本质还是数字
编码 Unicode 表:(97=a 65=A) 2字节 65536, Excel 2 16=65536
这些都是些底层的原理 要知道怎么用
转义字符
\t 制表符
\n换行
\v垂直制表符
\换页
\r回车
\ "双引号
\ ‘ 单引号
\ \反斜杠
String sa=new String(original"hello,world");
String sb=new String(original"hello,world");
System.out.println(sa==sb);>false
String sc="hello,world";
String sd="hello,world";
System.out.println(sc==sd);true
对象 从内存分析
布尔值扩展
boolean flag=true;
if(flag==true){}//新手程序员
if(flag){}//老手
//less is More 代码要精简易读
类型转换
由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。
低 --------------------------------------------------->高
byte short ,char--->int -->long-->float-->double 小数的优先级一定大于整数
一个字节8位 16位 16位 32位 64位 32位 64位
1字节 2字节 2字节 4字节 8字节 4字节 8字节
运算中,不同类型的数据先转化为同一类型,然后进行运算。
强制类型转换
int i=128;
byte c=(byte)i;//内存溢出
高---低
//强制转换 (数据类型)变量名
System.out.println(c);
System.out.println(i);
自动类型转换
int i1=3000;
double i2=i1;
System.out.println(i1);
System.out.println(i2);
//自动转换 低--高
/*
* 注意点:
*1,不能对布尔值进行转换
* 2,不能把对象类型转换为不相干的类型
* 3,在把高容量转换到低容量的时候,强制转换
* 4,转换的时候可能存在对象溢出,或者精度问题!
* */
System.out.println((int)23.7);
System.out.println((int)-45.3f);
char b='a';
int m=b+1;
System.out.println((int)m);>>98
System.out.println((char)m);>>b
//操作比较大的数的时候,注意溢出问题
//Jdk7的新的性,数字之间可用下划线分割
int money=10_0000_0000;
int years=20;
// int total3=money*years;//-1474836480, 计算的时候溢出了
// long total2=money*years;//默认的就是int,转换之前已经存在问题?
long tota4=money*(long)years;//先把一个数转换为loog
System.out.println(tota4);>>2000000000
变量
-
变量是什么:就是可以变化的量!
-
java是一种强类型语言,每个变量都必须声明其类型。
-
java变量是程序中最基本的储存单元,其要素包括变量名,变量类型和 作用域。
type varName [=value] [{,VaeName[=value]}];
//数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型变量
-
注意事项:
-
每个变量都有类型,类型可以是基本类型,也可以是引用类型。
-
变量声明是一条完整的语句,因此每一个声明都必须以分号结束
变量
int a=10;
String b="张哲源";
char c='z';
double pi=3.14;
float e=1.2f;
变量作用域
类变量
实列变量
局部变量
public class Demo05 {
//类变量 static
static double salary = 2500;
//实列变量:从属于对象:如果不自行初始化,这个类型的默认值 整数0 浮点型0.0 字符串u0000
//布尔值默认是false false是0 true是1;
//除了基本类型 其余的默认值都是null;
String name="张哲源";
int age;
//main方法
public static void main(String[] args) {
//局部变量;必须声明初始化值
int i = 10;
System.out.println(i);>>10
// 实列变量 变量类型 变量名字 = new Demo05();
Demo05 Demo05 = new Demo05();
System.out.println(Demo05.age);>>0
System.out.println(Demo05.name);>>张哲源
//类变量 static
System.out.println(salary);>>2500
}
}
常量
常量(Constant):初始化(initalize)后不能再改变值!
所谓常量可以理解成一种特殊的变量,它的值被佘定后,在程序运行过程中不允许被改变。
final 常量名=值
final double PI=3.14;
常量名一般使用大写字符。
public class Demo06 {
static是修饰符
//修饰符,不存在先后顺序\
static final Double PI=3.14;
public static void main(String[] args) {
System.out.println(PI);>>3.14
}
}
变量名的使用规范

运算符

算数运算符 二元运算符
+ - * / %
ctrl+d 复制当前行到下一行
int a=10;
int b=20;
int c=8;
int d=5;
System.out.println(a+b);>>30
System.out.println(a-b);>>-10
System.out.println(a*b);>>300
System.out.println((double)a/b);>>0.5
System.out.println(c/d);>>1
System.out.println(c%a);取模运算8 加上double类型转换后是8.0
double z=1000.3;
float x=2000.1f;
long v=12123;
int n = 1233;
short m=123;
byte g=12;
System.out.println(z+x+v+n+m+g);//是double数据类型>>16491.399975585937
System.out.println(x+v+n+m+g);//是float数据类型>>15491.1
System.out.println(v+n+m+g);//是long数据类型>>13491
System.out.println(n+m+g);//是int数据类型>>1368
System.out.println( m+g);//是int数据类型>>135
不同数据类型运算自动转换为容量大的数据类型
整数类型运算没有long类型都是int数据类型
关系运算符返回的结果:要么是正确true,错误false 是布尔值
>大于 <小于 ==等于 !=不等于 >=大于等于 <=小于等于
int a=10;
int b=20;
int c=21;
System.out.println(a>b);false大于运算符
System.out.println(a<b);true 小于运算符
System.out.println(a==b);false等于运算符
System.out.println(a!=b);true不等于运算符
System.out.println(a>=b);false大于等于运算符
System.out.println(a<=b);true小于等于运算符
自增自减运算符 一元运算符
//++ 自增 --自减
int a=3;
int b=++a;//执行完成这行代码后,先给b赋值,在自增
//a=a+1
System.out.println(a);>>4
//a=a+1
int c=++a;//执行完这行代码前,先自增,在给c赋值
System.out.println(a);>>5
System.out.println(b);>>3
System.out.println(c);>>5
自减
int a=5;
int b=a--;
int c=--a;
System.out.println(a);>>3
System.out.println(b);>>5
System.out.println(c);>>3
//幂运算 2^3 2*2*2=8 很多运算,我们会使用一些工具类操作
double pow = Math.pow(2,3);
System.out.println(pow);>>8.0
逻辑运算符
// &&与(and) ||或(or) !非(取反)
boolean a=true;
boolean b=false;
System.out.println("a && b:"+(b&&a));>>false//逻辑与运算,两个变量都为真,结果才是true 有一个数为假就是false
System.out.println("a || b:"+(b||a));>>true//逻辑或运算,两个变量有一个为真,结果才是true
System.out.println("!(a&&b:)"+!(b&&a));>>true//如果是真,则为假,如果是假,则为真
System.out.println("!(a||b:)"+!(b||a));>>false
int c=5;
boolean d=c<4||c++<8;
System.out.println(d);false
System.out.println(c);6
boolean d=c<4&&c++<8;
System.out.println(d);false
System.out.println(c);5
位运算
& 与 | 或 ^疑惑 ~取反
A = 0011 1100
b = 0000 1101
A&B 0000 1100与位运算 上下两位都是1结果为1 否则为0
A|B 0011 1101或位运算 上下两位都是0结果为0 否则为1
A^B 0011 0001疑惑位运算 上下两位相同则为0 否则为1
~B 1111 0010取反位运算
~A 1100 0011取反位运算
和二进制有关
<<左移运算符乘2
>>右移运算符除2
System.out.println(8<<1);16
System.out.println(2<<4);32
System.out.println(4<<1);8
System.out.println(8>>2);2
System.out.println(32>>4);2
* 0000 0000 0
* 0000 0001 1
* 0000 0010 2
* 0000 0011 3
* 0000 0100 4
* 0000 0101 5
* 0000 0110 6
* 0000 0111 7
* 0000 1000 8
* 0000 1001 9
* 0000 1010 10
* 0000 1011 11
* 0000 1100 12
* 0000 1101 13
* 0000 1110 14
* 0001 1111 15
* 0001 0000 16
0001 0001 17
0001 0010 18
0001 0011 19
0001 0100 20
条件运算符 三元运算符
x ? y : z
如果x==true 则结果为y否则为z
int a=80;
String type=a<60?"不及格":"及格";
System.out.println(type);>>及格
扩展赋值运算符:+= ,-= , *= , /=
int a=10;
int b=20;
a+=b;//a=a+b
a-=b;//a=a-b
a*=b;//a=a*b
a/=b;//a=a/b
字符串连接符 Strint类型
System.out.println(""+a+b);1020
System.out.println(a+b+"10");3010
System.out.println("10*20="+a*b);>>10*20=200

浙公网安备 33010602011771号