Java基础知识(一)

基础知识
1、JVM、JRE和JDK的区别
  JVM:Java虚拟机,用于保证Java跨平台的特性。
  JRE:Java运行环境,包括JVM和Java核心类库。
  JDK:Java开发工具,包括JRE和开发工具。
2、环境变量path和classpath区别
  path是exe文件所在目录,用于指定DOS窗口命令的路径。
  classpath是配置class文件所在的目录,用于指定类搜索路径,JVM就是通过它来找到class文件的。
3、变量有什么作用?为什么要定义变量?
  变量用来存储数据。
  定义变量可以不断地存取同一种类型的数据,并且可以不断地被重复使用。
4、&和&&的区别。
  1)&不会发生短路,&&会发生短路。即使用&&时若第一个表达式可以判断出结果则不会在运算第二个表达式
  2)&可以用来操作boolean类型以及操作数( 按为与:如2&3结果为1;5&9结果为1 ),&&只能用来操作boolean类型。
5、Java内存(大概)
  程序计数器,虚拟机栈,堆,方法区,运行时常量池,本地方法栈。
  栈内存:基本数据类型和引用数据类型的引用
  堆内存:存放引用数据类型(对象和数组)。

在堆内存中产生了一个对象或数组后,还能在栈内存中定义一个特殊的变量,这个变量等于对象或数组在堆中的首地址,这个变量就叫做引用变量。可以通过引用变量来访问该对象或数组。

6、数据类型(四类八种)
  整数类型:long(8字节)、int(4字节)、short(2字节)、byte(1字节)
  浮点数类型:double(8字节)、float(4字节)
  字符类型:char(2字节)
  布尔类型:boolean(1字节)

基本数据类型和包装类型区别
1、声明方式不同。基本数据类型直接定义,包装类型new。
2、存储方式和位置不同。基本数据类型直接定义后存储在栈内存中,包装类型存储在堆内存中。
3、初始值不同。如int为0、boolean为false,包装类型为null。
4、使用方式不同。基本类型直接使用,包装类型使用泛型时使用。

7、类型转换
  精度从高到低排:double、float、long、int、short、byte
  高精度—>低精度:强制类型转换(可能会损失精度)
  低精度—>高精度:自动类型转换
8、继承
  多个类拥有相同的属性和方法时,可以将这些属性和方法抽取出来组成一个新的类,那么这些类就无需再声明这些属性和方法,直接继承这个类即可。
  实现继承(单实现):直接使用父类的属性和方法无需重写(也可以重写)
  接口继承(多继承):继承接口必须实现接口中的方法。
9、封装
  把客观事物封装成抽象的类,并且可以隐藏类中的属性和实现细节,只向外部提供公共访问的方式。
10、多态
  类实例的同一个方法在不同情形下产生不同的效果。
  前提:要有继承,要有方法的重写,父类或接口的引用要指向子类。
11、重载
  同一个类中允许出现多个重名函数,前提是这些函数的参数类型或数量不一样。
  特点:与返回值类型无关,至于参数类型或数量有关。
  好处:方便阅读,优化了程序设计。
12、自动拆箱、装箱
  一个变量声明为包装类型赋值为基本类型时会自动装箱。
  一个变量声明为基本类型赋值为包装类型时会自动装箱。

//java文件
Integer a = 100;
int b = a;
//class文件
Integer a = Integer.valueOf(100);
int b = a.intValue();

已经有了基本类型为什么还要包装类?

  1. 方便对现实事物对象化。如把年龄设为int当某个人没出生时设为0感觉不是太好,设为Integer类型没出生设为null即可。
  2. 为泛型提供了支持。
  3. 提供了丰富的属性和API。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值