随记
1
hashcode 与 equals
比较两个值是否相同,String a=”aa”,String b=”aa”;
首先比较两个值的hashcode,hashcode是一种算法,将每个变量算出一个哈希码值存入哈希表,哈希表有很多位置,相同的哈希码值存到相同的位置。如果hashcode相等,再次比较equals,最后判断是否相等,如果hashcode不相等,不用再比较了,减少大量数据的比较次数。
—————得出结论 两个变量hashcode相等不一定值相等,值相等hashcode一定相等
2
进程是资源分配单位,线程是CPU调度单位
进程拥有一个完整的资源平台,而线程只独享指令流执行的必要资源,如寄存器和栈
线程具有就绪,等待和运行三种基本状态和状态间转换关系
3
并行:多个cpu同时处理多个事件,真正做到同时运行
并发:通过cpu调度算法 使多个事件在同一个时间段一起运行,看起来是同时运行
4
同步与互斥
【同步是一种更高级的互斥】
互斥 只是单个进程将临界资源锁住占用,用完解锁,不在乎其他进程,进程之间使用是无序的。
同步 是在互斥的基础上,将几个进程有序的合作的进行互斥
5
服务器状态码
200请求正常处理
404NOTFOUND 找不到资源对象
500 服务器内部错误
504 请求超时
503 服务器不可用
6
乐观锁与悲观锁
悲观锁:认为每次这块共享资源被使用都会被修改,不得已每个线程使用都会让其他线程阻塞,不易发生冲突 多用于写操作
乐观锁:认为数据一般不会造成冲突,在数据提交更新时候检测一下数据冲突,发现冲突交给用户处理。提高吞吐量高 多用于读操作
7
API:应用程序编程接口
将一些函数,代码,操作等封装后留下接口供别人使用,这个接口就是API
8
JVM:java虚拟机
本质上是一种程序,使java代码不需要根据不同平台编译成不同目标代码。只需要编译在JVM上运行的目标代码,实现了跨平台
9
同步与异步
同步如果得不到满足就进入阻塞,无法继续运行,挂起(白白占着资源不往下走)除非得到满足。
异步如果得不到满足可以一边等待一边干别的事,非阻塞
10
数据库连接池
当系统初始化的时候,就会建立一个数据库连接池,在连接池中预先建立好数据库连接对象,将连接对象存储在内存中。当用户访问数据库时,直接从连接池中调取连接对象使用,使用完了放回去下一个用户可以接着用。可以通过设置数据库连接池来设置初始化连接数,最大 最小连接数,最大空闲时间
11
序列化与反序列化
将pojo类继承Serializable接口,该类可以接收序列化,反序列化。
User user=new User();
ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream(“filename”));
out.writeObject(user);
12
大数据
顾名思义,很庞大,很大量的数据,对这些数据进行有价值的提取。对庞大的数据进行捕捉和处理
13
人工智能
如何使计算机去做只有人才能做到的智慧工作
14
区块链
去中心化思想,每一个用户都是一个中心,用户与用户之间组成一个链网,把每个用户的每一步操作都通知到所有用户,不可删除,不可更改.主要用在金融方面
15
物联网
物联网就是在互联网的基础上,进行的拓展,实现物与物 万物相连。物品通过红外感应器,全球定位等设备,将物品与物品通过互联网相连接,进行信息交换和通信。
16
JDK动态代理和Cglib动态代理的区别
JDK动态代理只能代理实现了接口的类,Cglib动态代理是对原来的类创造一个子类继承所有的方法,再加入advice;
17
http和https区别
http以明文方式在浏览器与服务器间发送,没有数据加密
https在http基础上加了SSL协议为数据加密
18
依赖注入和控制反转是同一概念:
依赖注入和控制反转是对同一件事情的不同描述,从某个方面讲,就是它们描述的角度不同。依赖注入是从应用程序的角度在描述,可以把依赖注入描述完整点:应用程序依赖容器创建并注入它所需要的外部资源;而控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源。
19
幂等性控制:
幂等性 一般指的是一个方法或者一个API无论一次调用还是多次调用都产生的是相同的结果.(比如用户交易时由于网络延迟等原因连续多次点击下单按钮,只能下单成功一单)
保证幂等的策略: 1通过唯一订单号或唯一标识来确定是否执行操作 2. 通过CAS保证原子性的判断唯一标识 再执行操作