随笔分类 -  【J2EE面试题】

摘要:接口的方法默认是 public,所有方法在接口中不能有实现(Java 8 开始接口方法可以有默认实现),而抽象类可以有非抽象的方法。 接口中除了 static、final 变量,不能有其他变量,而抽象类中则不一定。 一个类可以实现多个接口,但只能实现一个抽象类。接口自己本身可以通过 extends 阅读全文
posted @ 2021-04-28 23:35 西北野狼 编辑
摘要:什么是内存泄漏: 对象没有被应用程序使用,但是没有移除掉,还在被引用。 判断一个内存空间是否符合垃圾收集的标准有两个:一个是给对象赋予了空值null,以下再没有调用过另一个是给对象赋予了新值,这样重新分配了内存空间。 Java内存泄漏引起的原因 无用对象持续占有内存或者得不到及时释放,从而造成内存浪 阅读全文
posted @ 2021-04-28 17:22 西北野狼 编辑
摘要:HTTP 1.1 对比 1.0,HTTP 1.1 主要区别主要体现在: 缓存处理:在 HTTP 1.0 中主要使用 header 里的 If-Modified-Since,Expires 来做为缓存判断的标准,HTTP1.1 则引入了更多的缓存控制策略例如 Entity tag,If-Unmodif 阅读全文
posted @ 2020-10-15 11:22 西北野狼 编辑
摘要:重载和重写 方法重载(overload): 1. 必须是同一个类 2. 方法名(也可以叫函数)一样 3. 参数类型不一样或参数数量不一样 方法的重写(override)两同两小一大原则: 1. 方法名相同,参数类型相同 2. 子类返回类型小于等于父类方法返回类型, 3. 子类抛出异常小于等于父类方法 阅读全文
posted @ 2020-05-13 11:02 西北野狼 编辑
摘要:jvm: jdbc statement: JDBC statement中的PReparedStatement的占位符对应着即将与之对应当值,并且 一个占位符只能对应一个值 ,如果能对应多个就会引起混淆。sql语句是确定的,那么一个占位符必定只能对应一个值. PreparedStatement是预编译 阅读全文
posted @ 2020-05-12 15:02 西北野狼 编辑
摘要:MessageDigest MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,输出固定长度的哈希值。 MessageDigest 对象开始被初始化。该对象通过使用 " " ) 方法处理数据。任何时候都可以 阅读全文
posted @ 2019-01-20 23:21 西北野狼 编辑
摘要:网络分层: 1. 应用层 1. 传输层 1. 网络层 1. 数据链路层 1. 物理层 物理层: 比特流在节点之间的传输,是计算机连接起来的物理手段。 数据链路层: 控制网络层和物理层之间的通信,功能是在不可靠的物理线路上进行数据可靠传输。 网络层: 两台主机上应用程序端到端的通信。 两个协议: TC 阅读全文
posted @ 2018-10-24 21:04 西北野狼 编辑
摘要:一: submit()方法,可以提供Future 类型的返回值。 executor()方法,无返回值。 execute无返回值 _ _ _ 二: excute方法会抛出异常。 sumbit方法不会抛出异常。除非你调用Future.get()。 _ _ _ 三: excute入参Runnable su 阅读全文
posted @ 2018-10-13 23:49 西北野狼 编辑
摘要:206 断点下载时用到,客户端请求了一部分内容,服务器成功把这部分内容返回给它,这时候就是用这个状态。 301 永久跳转,原地址不存在了,url被指向到另一个地址。这个主要是搜索引擎相关,影响爬虫的检索行为。 302 临时跳转,服务器会返回一个新的url给客户端,客户端可以继续访问这个url来获取内 阅读全文
posted @ 2018-07-01 23:52 西北野狼 编辑
摘要:乐观锁和悲观锁 Synchronized属于 悲观锁 ,悲观地认为程序中的并发情况严重,所以严防死守。CAS属于 乐观锁 ,乐观地认为程序中的并发情况不那么严重,所以让线程不断去尝试更新。 性能对比: Synchronized关键字会让没有得到锁资源的线程进入blocked状态,而后在争夺到锁资源后 阅读全文
posted @ 2018-07-01 00:44 西北野狼 编辑
摘要:深入学习semaphore 控制同时访问资源线程数 访问特定资源前,先使用acquire(1)获得许可,如果许可数量为0,该线程则一直阻塞,直到有可用许可。 访问资源后,使用release()释放许可。 demo: 非公平策略 acquire实现,核心代码如下: java final int non 阅读全文
posted @ 2018-05-24 10:10 西北野狼 编辑
摘要:@transactional注解在什么情况下会失效,为什么。 @Transactional的使用: 在xml中配置spring事务管理类DataSourceTransactionManager 调用含注解的方法并抛异常,执行有异常抛出,z1表新增记录、z2表无新增记录,事务失效 修改后: 在代理下( 阅读全文
posted @ 2018-05-09 11:12 西北野狼 编辑
摘要:Hashmap在并发环境下,可能出现的问题: 1、多线程put时可能会导致get无限循环,具体表现为CPU使用率100%; 原因:在向HashMap put元素时,会检查HashMap的容量是否足够,如果不足,则会新建一个比原来容量大两倍的Hash表,然后把数组从老的Hash表中迁移到新的Hash表 阅读全文
posted @ 2018-05-08 14:57 西北野狼 编辑
摘要:正确截取List指定位置的内容 阅读全文
posted @ 2018-04-24 09:22 西北野狼 编辑
摘要:1.一个类只能进行单继承,但可以实现多个接口。 2.有抽象方法的类一定是抽象类,但是抽象类里面不一定有抽象方法; 接口里面所有的方法的默认修饰符为public abstract,接口里的成员变量默认的修饰符为 pulbic static final。 关系 1. 接口可以继承接口 2. 抽象类实现接 阅读全文
posted @ 2018-03-21 00:06 西北野狼 编辑
摘要:1 Spring拦截器的基本功能是什么? 拦截器是基于Java的反射机制的,是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至 阅读全文
posted @ 2017-11-12 12:11 西北野狼 编辑
摘要:StringBuilder和StringBuffer的区别: String 字符串常量 不可变 使用字符串拼接时是不同的2个空间 StringBuffer 字符串变量 可变 线程安全 字符串拼接直接在字符串后追加 StringBuilder 字符串变量 可变 非线程安全 字符串拼接直接在字符串后追加 阅读全文
posted @ 2017-11-11 08:15 西北野狼 编辑