日常笔记

技术准备:

一、基础知识

1、string、stringbuffer等的关系、区别;

对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。

和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象

小结

(1)如果要操作少量的数据用 String;

(2)多线程操作字符串缓冲区下操作大量数据 StringBuffer;

(3)单线程操作字符串缓冲区下操作大量数据 StringBuilder


2、list、set集合的区别、关系(最好能够讲一下原理);

Colllection是集合接口

​ —Set子接口:无序,不允许存在重复的元素

​ —List子接口:有序,可以存在重复元素

​ 区别,Collection是集合类

Set 和List的对比:

Set:检查元素效率低下,删除和插入的效率高,插入和删除不会引1起元素的位置变化。

List:和数组类似,List可以动态增长,查找元素的效率较高,插入元素和删除元素效率低,因为会引起其他元素位置发生变化。

Set

​ ----HashSet:以哈希表的形式存放元素,插入删除速度很快

List:

​ ----ArrayList :动态数组

​ ----LinkedList:链表,队列,堆栈

3、线程:线程和进程间的关系、多线程的应用场景、线程锁、线程池、创建线程的方式、线程常用命令(一般在并发情况下回使用到乐观锁、悲观锁)等;
4、==和equals之间的关系、区别;
6、JVM的概念以及相关优化;
7、GC机制(其中的算法以及几种状态是重点);
8、堆栈间的关系;
9、基本数据类型和引用数据类型;
10、反射;
11、设计模式(单例:懒汉式、饿汉式;代理;工厂)等;

单例模式,是一种常用的软件设计模式。通过单例模式可以保证系统中,应用该模式的这个类只有一个实例。即一个类只有一个对象实例。

  1. 将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象。

  2. 在该类内部产生一个唯一的实例化对象,并且将其封装为private static类型的成员变量。

  3. 定义一个静态方法返回这个唯一对象。

    根据实例化对象的时机单例设计模式又分为以下两种:

    1. 饿汉单例设计模式
    2. 懒汉单例设计模式

饿汉单例设计模式就是使用类的时候已经将对象创建完毕,不管以后会不会使用到该实例化对象,先创建了再说。很着急的样子,故被称为“饿汉模式”。

懒汉单例设计模式就是调用getInstance()方法时实例才被创建,先不急着实例化出对象,等要用的时候才实例化出对象。不着急,故称为“懒汉模式”。

Spring 中 bean 的默认作用域就是 singleton(单例)的。 除了 singleton 作用域,Spring 中 bean 还有下面几种作用域:

  • prototype : 每次请求都会创建一个新的 bean 实例。
  • request : 每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTP request内有效。
  • session : 每一次HTTP请求都会产生一个新的 bean,该bean仅在当前 HTTP session 内有效。
  • global-session: 全局session作用域,仅仅在基于portlet的web应用中才有意义,Spring5已经没有了。Portlet,是能够生成语义代码(例如:HTML)片段的小型Java Web插件。它们基于portlet容器,可以像servlet一样处理HTTP请求。但是,与 servlet 不同,每个 portlet 都有不同的会话

多例模式,是一种常用的软件设计模式。通过多例模式可以保证系统中,应用该模式的类有固定数量的实例。多例类要自我创建并管理自己的实例,还要向外界提供获取本类实例的方法。

代理模式在AOP中的应用


AOP(Aspect-Oriented Programming:面向切面编程)能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码降低模块间的耦合度,并有利于未来的可拓展性和可维护性

Spring AOP 就是基于动态代理的,如果要代理的对象,实现了某个接口,那么Spring AOP会使用JDK Proxy,去创建代理对象,而对于没有实现接口的对象,就无法使用 JDK Proxy 去进行代理了,这时候Spring AOP会使用Cglib ,这时候Spring AOP会使用 Cglib 生成一个被代理对象的子类来作为代理。

工厂模式(Factory Pattern)

是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。之前我们创建类对象时, 都是使用new 对象的形式创建, 除new 对象方式以外, 工厂模式也可以创建对象.

作用:解决类与类之间的耦合问题

Spring使用工厂模式可以通过 BeanFactoryApplicationContext 创建 bean 对象。

两者对比:

  • BeanFactory :延迟注入(使用到某个 bean 的时候才会注入),相比于BeanFactory 来说会占用更少的内存,程序启动速度更快。
  • ApplicationContext :容器启动的时候,不管你用没用到,一次性创建所有 bean 。BeanFactory 仅提供了最基本的依赖注入支持,ApplicationContext 扩展了 BeanFactory ,除了有BeanFactory的功能还有额外更多功能,所以一般开发人员使用ApplicationContext会更多。

ApplicationContext的三个实现类:

  1. ClassPathXmlApplication:把上下文文件当成类路径资源。
  2. FileSystemXmlApplication:从文件系统中的 XML 文件载入上下文定义信息。
  3. XmlWebApplicationContext:从Web系统中的XML文件载入上下文定义信息。
12、前端:cookie和session的区别关系、ajax、json解析、servlet生命周期等。
ajax:

ajax是一种通过后台与服务器进行少量的数据交换,使页面实现异步更新。是一种创建交互式网页应用的网页开发技术。
优点:异步请求响应快,用户体验好;页面无刷新、数据局部更新;按需取数据,减少了冗余请求和服务器的负担;
缺点:异步回调问题、this指向问题、路由跳转back问题;对搜索引擎的支持比较弱,对于一些手机还不是很好的支持

json:

json是一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性
优点:
1.数据格式比较简单,易于读写,格式都是压缩的,占用宽带小
2.支持多种语言,.JSON格式的编码比较简单
3.JSON的解码难度较低比起XML简单的多
5.JSON和js交互更加方便
6.JSON的速度远远快于XML
缺点 :
没有XML格式这么推广的深入人心和使用广泛, 没有XML那么通用性
JSON格式目前在Web Service中推广还属于初级阶段PS: 据说Google的Ajax是使用 JSON+模板 做的

二、框架

2、springmvc的执行流程;

待写作

3、mybatis整合中SQL注入问题、配置文件中的方法等;

待写作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一切如你i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值