java基础

一,回顾
1,类型转换
小类型 》 大类型 :自动转换
大类型 》 小类型 :强制转换
2,数据类型
数据类型:
基本数据类型
整数型:字节型byte,短整型short,整型int,长整型long
浮点型:单精度浮点型float,多精度浮点型double
字符型:char
布尔型:boolean
引用数据类型
类class,接口interface,字符串String,数组array,null
二,包装类
1,包装类的目的:是的简单数据类型也可以调用方法。
2,基本数据类型分别对应的包装数据类型
byte short int long float double char boolean
Byte Short Integer Long Float Double Character Boolean
3,jdk5的新特性:
自动装箱:将基本数据类型转换为包装类型。
自动拆箱:将包装类型转换为基本数据类型。
4,举例:
自动装箱:Integer i = 5;
自动拆箱:int a = i + 5;
自动装箱和自动拆箱:Integer j = i + 5;
三,jdk,jvm,jre的联系
1,jdk:JDK(Java Development Kit) 是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。
2,jre:JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器) 。
3,jvm:JVM(Java Virtual Machine),即java虚拟机, java运行时的环境,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
4,三者的联系:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
四,jvm的内存区域划分
1,程序计数器(Program Counter Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method Area)、堆(Heap)
在这里插入图片描述
2,祥看https://www.cnblogs.com/dolphin0520/p/3613043.html。
五,实例变量(成员变量),静态变量,局部变量
1,成员变量(实例变量)&局部变量区别:
(1)作用域
成员变量:针对整个类有效。
局部变量:只在某个范围内有效。(一般指的就是方法,语句体内)
(2)存储位置
成员变量:随着对象的创建而存在,随着对象的消失而消失,存储在堆内存中。
局部变量:在方法被调用,或者语句被执行的时候存在,存储在栈内存中。当方法调用完,或者语句结束后,就自动释放。
(3)初始值
成员变量:有默认初始值。
局部变量:没有默认初始值,使用前必须赋值。
2,成员变量(实例变量)&静态变量(类变量)区别:
A:调用方式
静态变量也称为类变量,可以直接通过类名调用。也可以通过对象名调用。
这个变量属于类。
成员变量也称为实例变量,只能通过对象名调用。这个变量属于对象。
B:存储位置
静态变量存储在方法区长中的静态区。
成员变量存储在堆内存。
C:生命周期
静态变量随着类的加载而存在,随着类的消失而消失。生命周期长。
成员变量随着对象的创建而存在,随着对象的消失而消失。
D:与对象的相关性
静态变量是所有对象共享的数据。
成员变量是每个对象所特有的数据。
六,面试题
1,Integer i = 100;
Integer j = 100;
System.out.println(ij); // true
Integer i = 200;
Integer j = 200;
System.out.println(i
j); //false
2,为什么呢?
因为==在比较基本类型的时候比较的是值,在比较引用类型的时候是比较的是地址值,当-128—127之间的数据,可以直接在缓冲区里找到,调用他的地址值,因此当i和j等于100的时候,他们的地址值一样,返回的是true。当超过了-128—127这个范围,会在堆中创建新的对象,每个对象的地址值都是不一样,即使他们拥有相同的数值,因此当i和j等于200的时候,返回的false。
七,运算符优先级

八,<<,>>,>>>,~
1,<< : 左移运算符,num << 1,相当于num乘以2
2,>> : 右移运算符,num >> 1,相当于num除以2
3,>>> : 无符号右移,忽略符号位,空位都以0补齐
4,~:按位求补。举例 ~1000 1010 结果:0111 0101
九,面试题
1,int i = 10;
i = i++;
System.out.printl(i); //10
2,原因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值