JAVA基础知识总结

**一、基础
(1)面向对象三大特征、五大原则
1.封装 2.继承 3.多态
1.单一职责原则 2.开放封闭原则 3.里氏替换原则 4.依赖倒置原则 5.接口隔离原则
链接:https://blog.csdn.net/jiyiqinlovexx/article/details/46593053
(2) JDK1.8新特性
链接: https://blog.csdn.net/op134972/article/details/76408237?locationNum=1&fps=1

二、JAVA集合类

  1. list 有序,可重复
    1.1 ArrayList 查询效率高,插入删除效率低,线程不安全,扩容为原来的1.5倍。
    1.2 LinkedList 查询效率低,插入删除效率高。
    1.3 Vector 线程安全,扩容为原来的2倍。
  2. set 无序,不可重复
    2.1 HashSet 使用HashMap实现。
    2.2 TreeSet 有序,(用二叉排序树)。
  3. map(键值对、键唯一、值不唯一)
    3.1 HashMap 使用数组加链表实现,线程不安全,key只可一个为null,默认初始大小为16,扩容为原来的2倍。
    3.2 HashTable 线程安全,key、value都不可为null,默认初始大小为11,扩容为原来的2倍+1。
    3.3 ConcurrentHashMap线程安全,使用的分段锁的机制。每个段其实就是一个小的hashTable,它们有自己的锁。只要多个修改操作发生在不同的段上,它们就可以并发进行。
    3.4 LinkedHashMap 有序,根据插入顺序进行排序。
    3.5 TreeMap 有序,根据键进行排序。

三、JAVA多线程

  1. 创建多线程的几种方式?
    1.继承Thread类 2.实现Runable接口 3.实现callable接口

  2. 线程池的作用
    1.减少创建和销毁线程的次数,每个工作线程可以多次使用;
    2.可根据系统情况调整执行的线程数量,防止消耗过多内存。

  3. 线程池ThreadPoolExecutor参数设置
    corePoolSize;maxPoolSize;keepAliveTime;allowCoreThreadTimeout;queueCapacity

  4. java锁的类型?Synchronized 与 lock的区别?
    链接:https://www.cnblogs.com/qifengshi/p/6831055.html
    Synchronized同步代码块或同步方法 :JVM负责获取和释放锁;非公平锁;可重入锁
    lock:需要显示的获取和释放锁,可以设置为公平或非公平锁,并且提供了尝试获取锁的方式,以及中断锁的方式。

  5. sleep 和 wait的区别
    (1)sleep是Thead类的静态方法;wait 是Object类的方法;
    (2)sleep不会释放锁,通过设置参数来唤醒;wait会释放锁,可以通过其他线程调用notify或notifyAll来唤醒;
    (3)wait必须使用在Synchronized同步代码块或同步方法中,sleep不需要;

    四、事物的四个特性,事物的隔离级别
    A:原子性 C:一致性 I:隔离性 D:持久性
    1.未提交读(可能产生脏读)
    2.已提交读(解决了脏读问题,可能产生不可重复读)
    3.可重复读(解决了不可重复读问题,可能产生幻读)
    4.串行化(解决了幻读,通常采用加锁(next-key Lock)的方式)

    五、mysql 知识点

    1. 索引的类型
      主键索引,唯一索引,联合索引,聚集索引
    2. 索引的实现方式
      B+树(优势: 优先降低树的深度,提高查询效率,以及提高范围查询的效率)
    3. mysql中Innodb引擎下的锁
      记录锁,间隙锁,next-key锁
    4. Innodb引擎和Myisam的区别
      1.Innodb 支持事务功能,Myisam 不支持;
      2.Innodb 为行级锁,Myisam 为表级锁;
      3.索引类型不同:Innodb聚集索引;Myisam非聚集索引

    六、JVM内存模型

    1. 程序计数器
      线程私有,向当前线程正在执行的字节码代码的行号。
    2. Java虚拟机栈
      线程私有,主要存放基本数据类型变量以及对象的引用。
    3. 堆区
      线程共享,存放对象和数组。
    4. 元数据区
      元数据区取代了1.7版本及以前的永久代。元数据区和永久代本质上都是方法区的实现。存放虚拟机加载的类信息,静态变量,常量等数据。

    七、TCP三次握手和四次挥手过程
    链接:https://www.cnblogs.com/Andya/p/7272462.html
    TCP滑动窗口及拥塞控制
    链接:https://www.cnblogs.com/woaiyy/p/3554182.html

    八、TCP和UDP的区别

    1. TCP是面向连接;UDP是无连接的,即发送数据之前不需要建立连接。
    2. TCP提供可靠的传输,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。
    3. TCP面向字节流,UDP是面向报文。
    4. TCP提供了拥塞控制机制,而UDP没有。
    5. 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信。

    九、get和post的区别

    1. get通过url传递参数,post将参数放在request body中,post更加安全。
    2. get请求在url中传递的参数是有长度限制的,而post没有。
    3. 对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

十、Spring框架
1. Spring常用注解
@Component @Controller @ Service @ Repository @Autowired @Resource
2. Spring Bean的作用域
singleton;prototype;request;Session;global-session
3. Spring中用到的设计模式
工厂模式;单例模式;代理模式等
4. spring IOC
IOC–Inversion of Control控制反转。当某个角色需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用者的实例对象。但在spring中创建被调用者的工作不再由调用者来完成,、而是由spring容器来完成,然后注入调用者 直接使用。
5. spring AOP
AOP是面向切面编程,是通过动态代理的方式为程序添加统一功能,集中解决一些公共问题。
6. spring 的优点
(1) 通过spring容器来创建对象,以及管理对象间的依赖关系,降低了组件之间的耦合性;(也是IOC的优势)
(2)通过将公共的功能抽离出来,然后使用AOP为所需模块动态的添加职责,使每个模块可以更好地处理自身的核心业务,也降低了组件之间的耦合性;
(3)spring 提供了多个模块,例如事务管理,定时任务等;
(4)spring 具有高度开放性,我们可以只使用我们所需的spring部分模块;
(5)spring 对很多主流框架提供了集成支持。 如mybatis等;
7. Spring管理事务有几种方式
1、编程式事务,在代码中硬编码。(不推荐使用)
2、声明式事务,在配置文件中配置(推荐使用)
(1)基于XML的声明式事务
(2)基于注解的声明式事务
8. 创建spring 容器的方式
BeanFactory ;ApplicationConttext
9. spring中自动装配的方式有哪些?
通过xml配置autowire属性; @Autowired注解;@Resource注解
10. springMVC的流程?
(1)用户发送请求至前端控制器DispatcherServlet
(2)DispatcherServlet收到请求调用HandlerMapping处理器映射器。
(3)HandlerMapping根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
(4)DispatcherServlet通过HandlerAdapter处理器适配器调用Controller
(5)执行Controller(处理器,也叫后端控制器)。
(6)Controller执行完成返回ModelAndView
(7)HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
(8)DispatcherServlet将ModelAndView传给ViewReslover视图解析器
(9)ViewReslover解析后返回具体View
(10)DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。
(11)DispatcherServlet响应用户
11. spring MVC的优势
(1)使用了MVC的开发模式,将业务层,视图层,控制层分隔开,有利于开发和维护;
(2)可以任意使用各种视图技术,而不仅仅局限于JSP。

十一、操作系统

  1. 进程与线程的区别,进程间如何通信,线程间如何通信?
    链接: https://blog.csdn.net/li2011014203/article/details/78367055
  2. 内存寻址的方式?

十二、常见算法

  1. 数组去重
  2. 合并两个有序数组或链表
  3. 判断链表有无环,如果有,返回环的入口
  4. 斐波那契数列
  5. 阶乘
  6. 单链表反转
  7. 快速排序,冒泡排序

十三、设计模式

  1. 单例模式
  2. 工厂模式
  3. 观察者模式
    链接: https://www.cnblogs.com/cr330326/p/5627658.html
以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值