| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> java基础问题总结(1) -> 正文阅读 |
|
[数据结构与算法]java基础问题总结(1) |
1.java代码为什么能一次编译,到处运行? 因为JVM(java虚拟机)将java文件编译成.class字节码文件,解释器再将字节码文件翻译成机器码,java代码就可以在不同机器上运行。 2.java中8种基本数据类型是什么? 整型:byte、short、int、long 浮点型:double、float 字符型:char? 布尔型:boolean 3.this 关键字的使用? 表示指向当前对象本身,形参与成员名字重名,用this来区分。 4.super关键字的使用? 表示指向离当前对象最近的父类,可以用super.xxx来引用父类的成员。 5.面向对象三大特征? 封装、继承、多态。 6.类加载顺序? 父类的静态成员变量->父类的静态代码块->子类的静态成员变量->子类的静态代码块->父类的成员变量->父类的代码块->父类的构造器 ->子类的成员变量->子类的代码块->子类的构造器 7.构造器作用? 类初始化 8.内部类包括? 静态内部类 new Outer.Inner(); 成员内部类 Outer? outer = new Outer();? outer.new Inner(); 方法内部类 方法内直接new 匿名内部类??匿名内部类必须继承或实现一个已有的接口 9.重载和重写的区别? 重载 : 同一个类,方法名相同,参数不同,和方法返回值和访问修饰符无关; 重写 : 父子类之间,方法名和参数相同,返回值小于等于父类,抛出的异常小于等于父类,访问修饰符大于等于父类 10. 集合框架包括哪些类或接口,特点是什么? Map接口和Collection接口是所有集合框架的父接口; Collection? 接口的子接口 List 和 Set ; List接口的实现类 主要有 ArrayList 、LinkedList 、Vector ArrayList 底层是动态数组,在内存中是连续的 。有序,可重复,允许多个null,遍历快,删除和加入慢,因为要把原数组的数据Copy到新的数组; LinkedList 底层是双向链表,通过Node来维护,所以删除和加入快(除了头尾元素),遍历慢,最好通过迭代器来遍历; Vector 基本同ArrayList ,但在增加了Synchronized?来实现线程同步,是线程安全的,所以性能比较慢。 Set接口的实现类 HashSet 、LinkedHashSet、TreeSet HashSet? 无序,不可重复,允许一个null,实际上调用了 HashMap,将对象存入HashMap的Key,Value始终为一空值PRESENT; LinkedHashSet??实际上调用了LinkedHashMap; TreeSet 有序,基于TreeMap实现; Map 接口的实现类有 HashMap、LinkedHashMap 、ConCurrentHashMap 、HashTable HashMap 线程不安全,允许一个Key为null,多个Value为null,底层是在jdk1.8 中是数组+链表/红黑树的结构 ,add方法通过计算hash值来确定在数组中的位置,如果发生hash冲突,则加入链表,该位置链表数大于阈值(默认8),则转化为红黑树,以减少搜索时间; LinkedHashMap 在HashMap的基础上实现了双向链表; ConCurrentHashMap? 线程安全,1.7 实现了分段锁,1.8优化使用CAS,只在每一个链表或红黑树的头结点加锁,提升了性能; HashTable 线程安全,加了全表锁,性能不行; 11.多线程的实现方式? 继成Thread类,实现Runable接口,实现Callable接口,线程池 12.线程的状态? 新建(new)可运行(runable)运行(runing)阻塞(block)死亡(dead) |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 18:57:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |