面试javase

1 数据类型

 

 2   ++i  和 i++

 3 堆存储的是实际值, 栈存储的是堆空间的引用

 4 数组拷贝

5 排序算法

5.1 冒泡排序(bubble sort):

这是最简单的排序法,基本思路:对未排序的各元素从头到尾依次比较相邻的两个元素大小关系,若大于则交换位置

, 经过第一轮比较排序后可得出最大值,然后使用同样的方法把剩下的元素逐个比较即可

, 若有N个元素,那么一共要进行N-1轮比较, 第M轮要进行N-M次比较

5.2 选择排序(selection)

基本思路:选定某个索引位置,然后和后面元素依次比较,若大于则交换位置,经过第一轮比较排序后可得出最小值,然后使用同样的方法把剩下的元素逐个比较即可。
可以看出选择排序,第一轮会选出最小值,第二轮会选出第二小的值,直到最后。
第一轮从arr[0]和后面元素相比较,第二轮从arr[1]和后面的元素相比较,依次类推。N个数要进行N-1轮。选择排序每一轮只进行一次交换,相对于冒泡排序效率高一些。

 5.3 线性查询和二分法查找

 

 6. 数组工具类

 

 

 7. 线程同步synchronized

7.1 线程创建

线程的创建主要3种方式,我们讲解最传统的两种方式:
1:继承java.lang.Thread类.
2:实现Runable接口

 

7.1 多线程描述

在Java中,解决多个线程并发访问同一个资源时出现的线程安全问题,解决方案有3种:
1:同步代码块

2:同步方法
3:Java5开始支持,锁机制.

7.2

同步方法的同步监听对象是谁?
若同步方法是非static方法,此时同步监听对象是:this.
若同步方法是static方法,此时同步监听对象是:当前方法所在类的字节码对象.

7.3

生产者和消费者案例

 7.4

 lock和synchronized对比

 

 7.5 lock

 

 7.5 死锁

 当多个线程都拿着同步监听对象不放,此时造成的情况就是死锁(效果:程序没有停止,但是没有任何反应).开发中是避免死锁的.
8 集合

 

9  LinkedList

LinkedList类:底层使用的单链表操作/双向链表/单向队列/双向队列

 9 栈

 10

ArrayList

 

 11 LinkedList

 12

Queue:表示单向队列. 先进先出(FIFO),后进后出(LILO).
插入操作,就应该插入到队列的末尾,从队首移除.
Deque:表示双向队列. FIFO,FILO.
插入操作:插入到队列的末尾和第一个.
移除操作:移除队列的末尾和第一个.

Stack:栈:  后进先出LIFO.

 13

 

 14  TreeSet

 

 排序

 

 

 

15 IO流

 

字节流拷贝文件

 

 

 文件输出流

 

 

 文件输入流

 

 

 

 字符流 和字节流转字符流

 

 

 包装流

对文件字节流包装

 

对文件字符流包装

 

 Properties类

 

 

 对象流和序列化

 

 

 16. jdbc

-->贾琏欲执事:
1:加载注册驱动.
2:获取连接对象.
3:创建/获取语句对象.
4:执行SQL语句.
5:释放资源.

 

 jdbc事务

描述: 事务其实就是多个操作,把多个操作看成是一个不可分割的整体,整体中的多个要成功都成功,要失败都失败

 

 

 

 

 

 

jdbc获取自动生成的主键

 

 17  方法重载和重写的区别

 

posted @ 2023-03-16 14:30  剑阁丶神灯  阅读(15)  评论(0编辑  收藏  举报