随笔分类 -  【J2EE】

摘要: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 西北野狼 编辑
摘要:一、日志 1、配置日志级别 日志记录器(Logger)的行为是分等级的。如下表所示: 分为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL 默认情况下,spring boot从控制台打印出来的日志级别只有INFO及以上级别,可以配置日志级别 # 设置日志级别 logging. 阅读全文
posted @ 2020-06-02 08:31 西北野狼 编辑
摘要:一、数据库对象:表(table) 视图(view) 序列(sequence) 索引(index) 同义词(synonym) 1. 视图(view) : 存储起来的 select 语句 复杂视图:只能查询,不能增删改 2. 序列(sequence) :用于生成一组有规律的数值。(通常为主键设置值) 序 阅读全文
posted @ 2019-03-06 09:07 西北野狼 编辑
摘要:MessageDigest MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,输出固定长度的哈希值。 MessageDigest 对象开始被初始化。该对象通过使用 " " ) 方法处理数据。任何时候都可以 阅读全文
posted @ 2019-01-20 23:21 西北野狼 编辑
摘要:网络分层: 1. 应用层 1. 传输层 1. 网络层 1. 数据链路层 1. 物理层 物理层: 比特流在节点之间的传输,是计算机连接起来的物理手段。 数据链路层: 控制网络层和物理层之间的通信,功能是在不可靠的物理线路上进行数据可靠传输。 网络层: 两台主机上应用程序端到端的通信。 两个协议: TC 阅读全文
posted @ 2018-10-24 21:04 西北野狼 编辑
摘要:FastDFS文件上传工具类 阅读全文
posted @ 2018-10-22 20:44 西北野狼 编辑
摘要:编写高质量代码:改善Java程序的151个建议 [117~128] Thread 不推荐覆写start方法 先看下Thread源码: 启动线程前stop方法是不可靠的 看下线程stop源码: start源码: 注意看start0方法和stop0方法的顺序,start0方法在前,也就说既是stopBe 阅读全文
posted @ 2018-08-14 16:42 西北野狼 编辑
摘要:编写高质量代码:改善Java程序的151个建议 [106~117] 动态代理可以使代理模式更加灵活 动态代理使用场景: 不用显式创建代理类即实现代理的功能,例如可以在被代理的角色执行前进行权限判断,或者执行后进行数据校验。 使用反射增加装饰模式的普适性 反射让模板方法模式更强大 提倡异常封装 具体调 阅读全文
posted @ 2018-08-13 17:31 西北野狼 编辑
摘要:建议的采用顺序是List中泛型顺序依次为T、?、Object (1)、List是确定的某一个类型 List表示的是List集合中的元素都为T类型,具体类型在运行期决定;List<?>表示的是任意类型,与List类似,而List则表示List集合中的所有元素为Object类型,因为Object是所有类 阅读全文
posted @ 2018-08-13 11:02 西北野狼 编辑
摘要:编写高质量代码:改善Java程序的151个建议 [78~92] HashMap中的hashCode应避免冲突 多线程使用Vector或HashTable Vector是ArrayList的多线程版本,HashTable是HashMap的多线程版本。 非稳定排序推荐使用List 对于变动的集合排序 1 阅读全文
posted @ 2018-08-10 17:26 西北野狼 编辑
摘要:编写高质量代码:改善Java程序的151个建议 [65~78] 原始类型数组不能作为asList的输入参数,否则会引起程序逻辑混乱。 输出的结果是: 元素类型是:class [I 前后是否相等:true 如果要转换,建议转换为对应的包装类,再使用 List list= Arrays.asList(d 阅读全文
posted @ 2018-08-09 17:41 西北野狼 编辑
摘要:编写高质量代码:改善Java程序的151个建议 [52~64] 推荐使用String直接量赋值 Java为了避免在一个系统中大量产生String对象(为什么会大量产生,因为String字符串是程序中最经常使用的类型),于是就设计了一个字符串池(也叫作字符串常量池,String pool或String 阅读全文
posted @ 2018-08-07 09:07 西北野狼 编辑
摘要:编写高质量代码:改善Java程序的151个建议 [36~51] 工具类不可实例化 工具类的方法和属性都是静态的,不需要生成实例即可访 问,而且JDK也做了很好的处理,由于不希望被初始化,于是就设置了构造函数private的访问权限,表示出了类本身之外,谁都不能产生一个实例: 避免对象的浅拷贝 sup 阅读全文
posted @ 2018-08-06 14:29 西北野狼 编辑
摘要: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 西北野狼 编辑
摘要:正确截取List指定位置的内容 阅读全文
posted @ 2018-04-24 09:22 西北野狼 编辑
摘要:1 Spring拦截器的基本功能是什么? 拦截器是基于Java的反射机制的,是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至 阅读全文
posted @ 2017-11-12 12:11 西北野狼 编辑
摘要:StringBuilder和StringBuffer的区别: String 字符串常量 不可变 使用字符串拼接时是不同的2个空间 StringBuffer 字符串变量 可变 线程安全 字符串拼接直接在字符串后追加 StringBuilder 字符串变量 可变 非线程安全 字符串拼接直接在字符串后追加 阅读全文
posted @ 2017-11-11 08:15 西北野狼 编辑