IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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)

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 20:51:01  更:2021-08-02 20:51:19 
 
开发: 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年5日历 -2024/5/11 0:52:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码