04

八大基本数据类型

int num1 = 10; //最常用byte num2 = 20; short num3 = 30; long num4 = 30L; //Long类型要在数字后面加个L/小数:浮点数 float num5 450.1F; double num6 = 3.141592653589793238462643;

long num7=23478678151254;  //会报错,数字后面不加默认是int,而这个超过了int的范围

1623401566688

整数拓展:

进制 二进制0b 十进制 八进制0 十六进制0x

int i = 10;
int i2 = 010;    //八进制B
int i3 = 0x10;  //十六进制x0~9A~F 16
system.out.println(i);
system.out.println( i2);
System.out.print1n(i3);

浮点数拓展

float f=0.1f        //0.1
double d=1.0/10;  //0.1
sout(f==d);  输出结果是false
​
float d1=456456456f;
float d2=d1+1;
​
sout(d1==d2); //输出结果为true
//float 表现的有限 离散 舍入误差 大约 接近但不等于
//最好不要使用浮点数进行比较
∴银行业务不能用float和double
BigDecimal
​

字符拓展

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 表 :如65=A  都有对应的关系  2字节  0-65536
    
char c3 = ' \u0061';
system.out.println(c3); //a
​
//转义字符
//\t 制表符 \n

类型转换

1623403930640

低转高不用括号
int i=128;
byte b=(byte)i; //溢出了   byte -128~127
double b=i;
//强制转换 高--低
//自动转换 低--高
不能对bool进行转换
不能把类型转换为不相干的类型
​
float a=1.3; //错误 默认是double  高->低 得强转 float a=(float)1.3;

变量作用域

public class Variable{ static int allClicks=0; //类变量 有static 静态变量

String name; //实例对象

int age; //实例对象 成员

String str="hello world" ; //实例变量 可以不初始化,从属于对象

public void method(){

int i =0; //局部变量 定义在方法里面,必须声明和初始化值 生命周期再{}之间 ​ } }

class Text{ int a=1; } 在Text类中基本数据类型的变量a是随对象存储在堆中的而 public void text(){ int b=1; } 在text局部方法中基本数据类型的变量b是存储在栈中的,从更深层次理解为什么基本类型的实例变量在堆上创建,局部变量在栈上创建,这样做有什么好处? 如果你将一个实例变量放在栈内,那么就不存在多个线程访问同一个对象资源了,这显然是不对的,所以实例变量要在堆上创建,但是对于局部变量,是在栈上创建的,调用一次方法创建一个帧,独享一份内存区域,其他的线程是不会访问到该线程的资源,在栈上创建也会减轻GC的压力,随着该方法的结束,帧出栈,相对应的内存消除,这种局部变量占用的内存自然就消失了。

实例变量的默认初始值

int 0

布尔值默认为false

除了基本类型其余的默认值都是 如String null

除了

final 常量不可变

ctrl+d //复制当前行到下一行

cast转换

long a = 123123123123123L;int b = 123;
short c = 10;byte d = 8;
system.out.println(a+b+c+d); //Long
System.out.println(b+c+d); //int
system.out.print1n((c+d));//Int  short+byte还是转换为int

幂运算

Math.pow(2,3); //2*2*2  工具类
​

短路运算

//短路运算
int c = 5;
boolean d = (c<4)&&( c++<4);
system.out.print1n(d);//false; 
System.out.println(c);//5 ∵c<5判断错误了之后,后面就不判断且执行了

位运算 效率极高

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
sout(2<<3);//底层是二进制
<< *2
>> /2
0000 0001   //1
0000 0010	//2
0000 0100   //4
    
0<<123 //位运算得从1开始

字符串连接

//字符串连接符+ , string
int a=10;
int b=20;
system.out.println( ""+a+b); //1020 字符串拼接了
System.out.print1n(a+b+"");  //30

三目运算符

String type =score <60?"不及格":"及格";

进入CMD

再地址如 d:/1java 前面输入cmd

生成文档

javadoc -encoding UTF-8 -charset UTF-8 Doc.java

 new Scanner(System.in); //然后按alt+enter
 Scanner scanner = new Scanner(System.in)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值