看看这些问题测测你的java基础怎么样

7 篇文章 0 订阅
1 篇文章 0 订阅

这里是引用
**Java基础

基础语法

	关键字

		final关键字用法
			修饰变量:是常量,不能被二次赋值
			修饰方法:不能被重写
			修饰类:不能被继承

		super关键字用法
			super表示父类对象
			super.成员:super.成员变量 super.方法
			super(参数...):super(参数...)

		this 的用法?
			this表示当前对象
			this.成员:this.成员变量 this.方法
			this(参数...):this(参数...)

		自己总结的规律:this:访问变量-看代码在哪个类中,访问方法-看new的是哪个对象。

		访问修饰符public,private,protected,以及不写(默认)时的区别?
			public:任意位置
			private:本类可以用
			protected:同包:都可以,不同包:子类可以访问
			默认:同包下可用
			
		Java有没有goto
			有,在Java中goto是保留字
			关键字:public void static class 被赋予特殊含义的单词
			保留字:还没被赋予特殊含义的单词,但是保留起来,以后可能会被赋予 goto const
			
			

		阐述final、finally、finalize的区别
			final
				修饰变量:是常量,不能被二次赋值
				修饰方法:不能被重写
				修饰类:不能被继承
			
			finally:
				是异常处理机制的一部分,表示一定会被执行的部分
			
			finalize:
				是Object中的方法,当垃圾回收器回收垃圾的时候,会自动调用finalize()方法进行垃圾回收
			

类间关系

	抽象类与接口的区别

		类、抽象类、接口解释,三者之间的关系
			什么是类:是一类事物共同特点的抽取
			什么抽象类:被abstract修饰的类,如果有需要子类去实现的方法,可以定义抽象类
			什么是接口:主要用来定义规范,接口没有实现的方法
			
			类继承抽象类,实现接口。
			抽象类可以实现接口
			接口只能继承接口

		方法重写?方法重载?
			重写:子类重写父类方法,方法名相同、参数列表相同、返回值类型要求相同,
			重载:本类中方法有相同方法名,参数列表不一样,和返回值类型无关。
		

		面向对象的特征有哪些方面?
			封装:封装是一种思想,类可以是封装,把共同的特性进行封装,方法:对一个功能的封装
			继承:子类继承父类,可以对父类功能进行增强
			多态:多中形态,必须有继承或实现关系,可以提高代码的灵活性

		构造器(constructor)是否可被重写(override)?
			不能:构造器不能被继承

		抽象的(abstract)方法是否可同时是静态的(static)
			不能:static:修饰方法,表示这个是静态方法(类方法),会在类加载的时候被加载金内存
				  abstract:抽象的,修饰方法表示抽象方法,需要子类去重写。

基本数据类型



		数据类型有几种
			基本数据类型:byte short int long float double boolean char 
			引用数据类型:除了基本数据类型就是引用数据类型

		什么是自动装箱和拆箱
			装箱:把基本数据类型赋值给对应的包装类
				int a = 10;
				Integer b = a;
			拆箱:把包装类型的值赋值给基本数据类型
				Character c = 'c';
				char d = c;

			byte:Byte
			short:Short
			int:Integer
			long:Long
			float:Float
			double:Double
			boolean:Boolean
			char:Character
				
		float f=3.4;是否正确?
			不对:小数默认是double类型,小数赋值给float类型需要加F/f/强转
                           
		short s1 = 1; s1 = s1 + 1;有错吗?
		short s1 = 1;会自动隐式转换
		s1 = s1 + 1;会报错,因为s1 + 1结果是int类型,int 值赋值给 short需要强制转换。此处会报错。
			有错:如果有变量参与运算,会先把类型提升为同一类型,再运算
		
		short s1 = 1; s1 += 1;有错吗?
			没有: += 会自动隐式转换
		
		String 转 int 如果转换的值是"s1", 会报什么错?
			NumberFormatException
			"351516"  转日期会报什么错? DateFormatException
			
			异常的顶层父类:Throwable
			

引用数据类型

	String

	字符串String s ="sfds55d676455dfg32434eertre"; 怎么样把非数字全部去除,只保留数字?

	String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有?
		没有:因为String是不可变字符串.
		
	String、StringBuilder、StringBuffer的区别?(重点)
		String: 不可变字符串。
		StringBuilder: 可变长度字符串,线程不安全(效率高)
		StringBuffer:  可变长度字符串,线程安全(效率相对StringBuilder低)

	描述以下3中情况,变量a的内存区别
	1). String a = 123;
		编译报错:123是int类型
		
	2). String a = "12"+"3"; 
		在编译时期,"12"+"3"会先进行合并"123"; String a = "123"
		当字符串常量进行拼接时候,JVM进行了优化,会先合并操作
		
	3). String b = "12";
		String a = b + "3";
		
		
		
	String 是最基本的数据类型吗?
		不是:是引用数据类型

	是否可以继承String类?
		不可以:因为string类被final修饰了

	String s = new String("xyz");创建了几个字符串对象?
		如果字符串常量池之前有"xyz"字符串常量,那么只堆内存中创一个String对象
		如果只之前没有,则创建2个对象,一个在堆内存中,一个在字符串常量池
		

控制语句

	switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?(重点)
		switch() 
		char byte short int 枚举,JDK1.5以后可以接收String
		
	switch 使用时的注意事项?
		1.接收的数据类型:char byte short int 枚举,JDK1.5以后可以接收String
		2.case需要有break;
		3.case都不匹配会走default

	在Java中,如何跳出当前的多重嵌套循环?
		1. break; 结束当前循环
		2. continue; 跳过本次循环
		3. return; 结束方法
		4. 异常 : 结束方法
		5. 退出虚拟机:System.exit(0);
		
JDK

	JDK, JRE, JVM 的区别?
		JVM:Java虚拟机
		JRE:运行环境
		JDK:开发环境

	什么是GC, 有什么作用?		
		GC是垃圾收集的意思,内存处理是编程人员容易出现问题的地方,
		忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,
		Java程序员不用担心内存管理,因为垃圾收集器会自动进行管理。
		Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,			
		要请求垃圾收集,可以调用下面的方法之一:System.gc()

集合

	List,Set,Map是否实现Collection接口,List, Set, Map的区别
		List,Set是实现了Collection接口 :单列集合
			list:有序集合,元素可以重复
			set: 无序集合,元素不可以重复
		Map: 不是,双列集合	
			key:不能重复
		
		
	Collection 和 Collections的区别
		Collection是集合的接口
		Collections是集合的工具类:sort / Max  / min /查找 /随机打乱

List

	如果一个List中放了十个 Student对象,需要按照年龄排序,如何 实现?
		排序:
			1. 内部排序:实现Compareable 接口重写 compareTo方法
			2. 外部排序:重写Comparetor接口中 compare方法
		
	list三个子类的特点(阐述ArrayList、Vector、LinkedList的存储性能和特性)(重点)
			ArrayList : 数组结构,单列集合,有序,能重复,线程不安全的,查询快,增删慢
			Vector:数组结构,单列集合,有序,能重复,线程安全的
			LinkedList:链表结构,有序,查询慢,增删快
		
Set

	Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
		先判断hash值:调用hashCode()获取hash值
		再判断内容是否一致:调用equals()方法
		
Map

	hashMap和hashTable的区别
		

异常

	常见的异常
		NullPointException
		IndexOutOfBoundException
		NumberFormarException
		DateFormatException
		...
	
反射

	如何通过反射创建对象:获取class的三种方式
		类名.class; Class.forName("全类名");new 对象().getClass();
	如何通过反射获取和设置对象私有字段的值
	
	如何通过反射调用对象的方法
	**
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值