Java基础题记录
1. 装箱和拆箱
装箱:自动将基本数据类型转换为包装器类型即引用数据类型
拆箱:将包装器类型转换为基本数据类型
2. Java的8中基本数据类型
| 关键字 | 字节数 | 范围 | 默认值 |
| boolelan | 1byte | true、false | false |
| byte | 1byte | -128~127 | 0 |
| short | 2byte | 0 | |
| int | 4byte | 0 | |
| long | 8byte | 0L | |
| float | 4byte | 0.0F | |
| double | 8byte | 0.0D | |
| char | 2byte | ‘\u0000’ |
3. int和Integer的区别
int是基本类型,而Integer是引用类型,Integer是对int的装箱,而int是对Integer的拆箱。int的默认值是0,而Integer的默认是null。int无需实例化即可使用,而Integer需要实例化方可使用
4. 有了int为什么还要有Integer
Java语言是面向对象的语言,而int基本数据类型,不能够满足面向对象的特性,使用Integer可以将数值以及操作数值的方法封装在一起,使得外部只能通过api对数据进行操作,提高了数据的安全性,同时在java中像集合以及map这样的容器都是面向对象的,仅仅使用int无法满足其需求。
5. 字节和字符的区别
字节是存储容量的基本单位,而字符是数字,字母、汉字以及其它语言的各种符号。
6. Java的四大基本特性
封装、抽象、继承以及多态。
封装:将数据以及对数据操作的方法包装在一个类中,使得外部的访问只能通过给类提供的接口进行操作,避免用户直接对数据操作带来的危险性
抽象:将一系列对象共有的特性总结出来,构造类的过程,包括数据抽象和行为抽象两方面,抽象只关注对象有哪些行为和属性,而不关注这些行为和属性的具体实现。
继承:从已有的类得到继承信息来创建新的类,新的类为子类,旧有的类为父类。
多态:允许不同子类型的对象对同一消息做出不同的响应。
多态的理解:
方法重载、方法重写(子类)以及接口
7. Java创建对象的四种方式
1. 使用new关键子创建对象
2. 使用反射机制创建对象(Class 类的newInstance)
3. 采用clone(实现Cloneable接口)
4. 反序列化机制
8. String str = new String(“abc”)创建几个对象
如果String Pool中没有abc字符串,则需要在String Pool中先创建一个abc,然后再在java堆中创建一个abc,即需要创建两个对象,如果有,则只需在java堆中创建一个对象即可。
9. String Pool
字符串常量池,保存着所有的字符串字面量,在编译器就已经存在,在程序运行期间会动态的向该常量池中添加字符串。
Java 7之前字符串常量池在运行时常量池中,属于永久代,后被移到了Java堆中,将字符串常量池放于永久代容易发生OutOfMemoryError。
10. 反射
反射机制是在程序运行期间,对于任意一个类,都可以知道该类的任何方法和所有属性,对于任意一个对象都可以调用它的任意一个方法和属性,这种动态获取信息以及动态调用对象的方法的功能称为Java语言的反射机制。
获取Clas对象的方法有:
Class.getClass()、Class.forName()、ClassLoader.loadClass。
Java基础题记录的更多相关文章
- Java基础题:集合、String、性能、线程
转载自:Java基础题 https://yq.aliyun.com/articles/601786?utm_content=m_1000001149
- 【原创】这道Java基础题真的有坑!我也没想到还有续集。
前情回顾 自从我上次发了<这道Java基础题真的有坑!我求求你,认真思考后再回答.>这篇文章后.我通过这样的一个行文结构: 解析了小马哥出的这道题,让大家明白了这题的坑在哪里,这题背后隐藏 ...
- java基础复习记录
java基础复习记录(数组.对象.异常) 数组 数组的定义 数组是相同类型数据的有序集合.如:篮球队就是一个数组,队员球服上有号码,相当于索引.通过某一个的某一个号码来确认是某一个队员.数组中索引从0 ...
- java 基础题 很基础, 很有趣
都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底, 老手们就不用进来了,免得笑话我们这些未出校门的孩纸们, ...
- Java基础题
问题: 1.请对比一下重载和重写的区别. 2.请对比一下接口和抽象类的异同. 3.写出一个单例模式,并说明其优点. 4.用过String.StringBuffer吗,说出他们的异同. 5.什么是值传递 ...
- 转载 java基础题(面试必知)
1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包 ...
- 这道Java基础题真的有坑!我求求你,认真思考后再回答。
本文目录 一.题是什么题? 二.阿里Java开发规范. 2.1 正例代码. 2.2 反例代码. 三.层层揭秘,为什么发生异常了呢? 3.1 第一层:异常信息解读. 3.2 第二层:抛出异常的条件解读. ...
- 几个Java基础题
1.java中线程能不能重复start t1.start(); System.out.println("ssss"); t1.start(); 答:第一 ...
- java基础题整理(1)
1.使用length属性获取数组长度,使用length()获取字符串的长度: 2.public.private.protected.friendly区别 public表明该数据成员.成员函数是对所有用 ...
随机推荐
- python 绘制五角星
code import turtle n = eval(input("请输入五角星的长度")) turtle.begin_fill() #开始填充颜色 i = : turtle.f ...
- OpsManage安装过程中遇到的问题和解决方案
系统地址:https://github.com/welliamcao/OpsManage 系统:ubuntu ubuntu使用apt-get进行自动化安装 自带python2.7,不需要再次安装 1. ...
- ie8中使用ajax总是进入error解决办法
试过很多种方法有的说是因为要把cache:false,但是本人遇到的情况可能不同最终结局的办法是 引用的是<script src="js/jquery-1.4.2.min.js&quo ...
- linux下通过进程名查看其占用端口
linux下通过进程名查看其占用端口: 1.先查看进程pid ps -ef | grep 进程名 2.通过pid查看占用端口 netstat -nap | grep 进程pid 例:通过nginx进程 ...
- flask 部署
学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器.根据搜索的教程照做,对于原理一知半解,磕磕碰碰,只要运行起来了,谢天谢地然后不再折腾了,到下一次还需要部署时,这样的 ...
- [MyBatis]最简MyBatis工程
下载地址:https://files.cnblogs.com/files/xiandedanteng/fillMillionDatum01_191005.rar --END-- 2019年10月5日1 ...
- 性能测试 | 理解单线程的Redis为何那么快?
前言 Redis是一种基于键值对(Key-Value)的NoSQL数据库,Redis的Value可以由String,hash,list,set,zset,Bitmaps,HyperLogLog等多种数 ...
- redis2. sds 字符串(SimpleDynamicString)
1.标准strcat 会有溢出风险,sdscat无溢出风险 2.空间预分配,惰性空间释放 空间预分配:sds分配空间时,如果原来是5,free是0, sdscat追加一个10长度的,此时字符串加长到1 ...
- EBR-TLV数据格式
EMV规范中的BER-TLV数据格式:BER-TLV结构由Tag.Length.Value三部分组成. [TAG域]TAG可以由1个与多个字节组成,TAG域的第一个字节编码格式如下: 其中由三部分组成 ...
- parted对大容量磁盘进行分区
Linux系统中MBR与GPT的区别 主引导记录(Master Boot Record , MBR)是指一个存储设备的开头 512 字节.它包含操作系统的引导器和存储设备的分区表. 全局唯一标识分区表 ...