![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java理论基础
文章平均质量分 55
锐rui3g
总结一些自己用过的以及遇到的一些坑
展开
-
java基础问题(八)
1.用过哪些设计模式 详情见Java基础问题(四) 2.通信协议 TCP/IP,socket,报文,mqtt,… 3.分布式锁 为了保证一个方法或属性在高并发情况下的同一时间只能被同一个线程执行,在传统单体应用情况下,可以使用Java并发处理相关的API(如ReentrantLock或Synchronized)进行互斥控制,由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机部署情况下的并发控制锁策略失效,为了解决这个问题就需要一种跨JVM的互斥机制来控制共享资源的访问,这就是分布式锁要解决的问题原创 2021-08-30 11:41:43 · 175 阅读 · 0 评论 -
java基础问题(七)
1.list,map list可重复,无序,map不可触重复 2.lamda表达式原理 1>在类编译时,会生成一个私有静态方法+一个内部类; 2>在内部类中实现了函数式接口,在实现接口的方法中,会调用编译器生成的静态方法; 3>在使用lambda表达式的地方,通过传递内部类实例,来调用函数式接口方法。 3.sql优化 详情见博客 “java基础问题(三)” sql优化。 4.绑定变量 绑定变量: 硬解析和软解析。绑定变量是解决硬解析的利器。 硬解析:就是一条没有执行过的sql。数据库首先对原创 2021-08-27 17:17:16 · 134 阅读 · 0 评论 -
Java基础问题(六)
1.list排序 方式一: List<Student> list = Lists.newArrayList(); list.sort(comparing(Student::getScore)); 方式二: List<Student> list = Lists.newArrayList(); list.stream().sorted(Comparator.comparing(Student::getId)); 2.string和stringBuffer的区别 String: 是对象原创 2021-08-24 22:31:34 · 162 阅读 · 0 评论 -
java基础问题(五)
1.对saas的理解 SaaS是Software-as-a-service(软件即服务),是一种基于互联网提供软件服务的应用模式,自己开发软件就相当于自建房,传统买软件就相当于买房,SaaS就相当于是租住公寓。 SaaS并不是指代一个行业或者一种技术,它是一种2B的专业型软件租赁使用模式。 优点:采用云服务,客户不需要自己部署服务器; 网上下载即装即用,无需专门部署安装。 使用成本极低,再小的公司也用得起; 快速部署应用,使用效率高; 后续维护、更新升级不产生额外费用。 2.springboot的理解 使用原创 2021-08-23 19:46:29 · 125 阅读 · 0 评论 -
java基础问题(四)
1.做过的项目用到过哪些设计模式,(最好了解一下设计模式的概念) 工厂模式: 普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。 多个工厂方法模式,是对普通工厂方法模式的改进,在普通工厂方法模式中,如果传递的字符串出错,则不能正确创建对象,而多个工厂方法模式是提供多个工厂方法,分别创建对象。 静态工厂方法模式,将上面的多个工厂方法模式里的方法置为静态的,不需要创建实例,直接调用即可 抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代原创 2021-08-18 16:01:16 · 89 阅读 · 0 评论 -
java基础问题(三)
1.有一个数A,一个数B,一个数c,第一次ABC一次存入,并记录存入次数,第二次,后面依次记录使用次数,要求将最久的,使用次数最少的,在达到1000条数据后,删除。 1>(无脑解)创建一个全局map集合,将数和时间,按时间存入,达到1000后进行,时间戳对比,以及相同次数对比。 2>使用三个全局list,统计次数各个使用次数,最近使用时间,每次使用更新时间,当总和达到1000次后做时间对比和使用次数对比并删除。 (期望后续补充,来几个最优解) 2.sql优化 1> 查询优化:建立索引,应尽原创 2021-08-17 18:19:59 · 141 阅读 · 0 评论 -
java基础问题(二)
1.栈和消息队列的区别 栈先进后出,消息队列先进先出, 栈的性能比较低,而消息队列性能比较高, 栈是限定只能在表的一端进行插入和删除操作的线性表。 队列是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。 栈只能从头部取数据,也就最先放入的需要遍历整个栈最后才能取出来,而且在遍历数据的时候还得为数据开辟临时空间,保持数据在遍历前的一致性。 队列则不同,它基于地址指针进行遍历,而且可以从头或尾部开始遍历,但不能同时遍历,无需开辟临时空间,因为在遍历的过程中不影像数据结构,速度要快的多 ps: 消息队列原创 2021-08-17 12:30:19 · 112 阅读 · 0 评论 -
java基础三个问题
1.请例举线程安全的例子 单例模式,一个变量被一个程序操作完,才能再被其他程序操作(期望补充) 2.postMapping是否可以不用对象传参 3.form表单传递后端是什么形式和json串有什么区别 键值对格式,例如x=1&y=2。 json可以支撑复杂的数据结构而form表单不行。 ...原创 2021-08-16 18:01:56 · 101 阅读 · 0 评论 -
简单介绍Java中的异常(Error与Exception)
简单介绍Java中的异常(Error与Exception)原创 2020-01-07 15:47:21 · 170 阅读 · 0 评论 -
Java基础性的理论知识
Servlet的生命周期分为5个阶段:加载、创建、初始化、处理客户请求、卸载。 (1)加载:容器通过类加载器使用servlet类对应的文件加载servlet (2)创建:通过调用servlet构造函数创建一个servlet对象 (3)初始化:调用init方法初始化 (4)处理客户请求:每当有一个客户请求,容器会创建一个线程来处理客户请求 (5)卸载:调用destroy方法让servlet自己释放其...原创 2020-01-07 15:26:00 · 269 阅读 · 1 评论