基本数据类型(第二天)

native:就是一个java调用非java代码的接口,该方法的实现由非Java语言实现
strictfp:精确浮点的意思
super:可以在子类的构造方法显示的调用父类的方法
synchronized:同步方法,同步代码块
throws:在方法的头部声明异常不做处理 而throw则抛出异常
try catch:捕获代码块的异常并做处理
transient:修饰成员变量时,被修饰的变量不参与序列化过程
volatile:java提供的一种轻量级的同步机制,保障线程同步
goto:跳出多重循环c,c++中
整数类型:byte:1字节   short:2字节  int:4字节 long:8字节
小数类型:float:4字节 double:8字节
字符数据类型:char:2字节
布尔数据类型:boolean:1字节


值传递与引用类型的传递:

java值类型:byte,short,int,long,float,double,boolean,char(即八大基本类型)
java引用类型:类,接口,数组,String(也是类)
java中方法参数的传递都是值传递,且是值的拷贝传递。
java中方法传递参数时,如果是值类型的参数传递,对变量的修改,不会影响到方法外面。如果是引用类型的参数传递,变量会发生修改,并且影响到方法外面。


内存分配:

基本数据类型:保存在栈内存中的简单数据段,保存在内存中的一个位置。

引用类型值:在栈中仅仅是存储引用类型变量的地址,其本身存储在堆中。

1.堆和栈是java在RAM中存储数据的地方,java自动管理堆和栈,程序员不能直接设置;

2.栈的优势是:存取速度要比堆快,且数据可以共享;缺点是:存在栈中的数据大小与生命周期必须是确定的,缺乏灵活性。

3.堆的优势在于可以动态分配内存大小,生存期也不必事先告诉编译器,java的垃圾收集器会自动收走这些不再使用的数据,缺点是由于要在运行时动态分配内存,存取速度较慢。

4.栈中的数据可以共享,比如int a=3,b=3;一开始a=3开辟一个栈中的空间,当b=3时,发现有a了,就直接将b指向a指向的地址。


浮点数的科学计数法:

单精度浮点数float:32位,符号位S占1bit,指数E占8bit,尾数M占23bit

双精度浮点数float:64位,符号位S占 1 bit,指数 E 占 11 bit,尾数 M 占 52 bit

比如25.125的科学计数法:25.125(D)=11001.001(B)=1.1001001*2^4(B)

符号位:0      指数为补码:4+127=135=10000111   尾数:1001001(去掉1,隐藏位)变为001001

0  10000111 0010010000.....


Boolean类型数据占用几个字节:

当Boolean类型数据是数组中的元素时,就是1字节。

当Boolean类型数据是在Java语言表达式中时,就是4字节。(使用4字节的原因就是当下CPU是32位的,CPU32位寻址时,效率高)


final关键字:

作用:1.final修饰的类不能被继承 2.final修饰的方法不能被重写 3.final修饰的变量不能被修改

其中:被finall修饰的变量,不管是哪种变量,都是变量的引用不能被修改,而非引用所指向的内容。

static关键字:

被static修饰的成员变量或方法独立于该类的对象,只要该类被加载,可以在对象实例化之前访问。

静态变量:当JVM加载类时,可以通过类名直接访问,类的所有实例共享一个static变量。

静态方法:静态方法可以直接通过类名调用,但是不能直接访问所属类的实例变量和方法,只能访问所属类的静态变量和方法,这是因为实例成员只与特定对象关联。

静态代码块:为类中独立于类成员的static语句块,不在任何方法体内,当JVM加载类时,就会执行静态代码块,无需等待实例化,static语句块可以多个,JVM会按照它们的先后顺序依次执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值