- 博客(11)
- 收藏
- 关注
转载 深入浅出数据库索引原理(转)
原文地址:https://www.cnblogs.com/aspwebchh/p/6652855.html 前段时间,公司一个新上线的网站出现页面响应速度缓慢的问题, 一位负责这个项目的但并不是搞技术的妹子找到我,让我想办法提升网站的访问速度 ,因为已经有很多用户来投诉了。我第一反应觉的是数据库上的问题,假装思索了一下,摆着一副深沉炫酷的模样说:“是不是数据库查询上出问题了, 给表加上索引...
2018-07-26 13:54:21
202
原创 Java中关于String一些常见的问题
String是非可变类,这种类的实例一旦被创建,就不会发生任何变化,可以保证这个实例安全性,比如在多线程中,由于实例是不可变的,因此也就不用考虑多线程读写的问题,同时String改写了equals方法和hashCode方法,这也经常作为考点。 String s1="abc";String s2="abc";System.out.println(s1==s2);System....
2018-07-25 10:12:25
278
原创 Effective Java 总结(三) 类和接口
使类和成员的可访问能力最小化一个好的API,它的接口是应该和内部实现完全隔离开的,一个模块不需要知道其他模块的内部情况,这个概念叫做“封装”,这么做的好处是能大幅度降低类之间的耦合程度,可以使得这些模块进行独立的修改,而不用去考虑对其他部分的影响。Java中有四种访问级别的关键字,可访问性从低到高分别是private,protected,默认和public,理论上来说,凡是没有理由公开在外...
2018-07-25 09:47:58
169
转载 深入理解JAVA序列化(转)
深入理解JAVA序列化原文链接 : https://www.cnblogs.com/wxgblogs/p/5849951.html 如果你只知道实现 Serializable 接口的对象,可以序列化为本地文件。那你最好再阅读该篇文章,文章对序列化进行了更深一步的讨论,用实际的例子代码讲述了序列化的高级认识,包括父类序列化的问题、静态变量问题、transient 关键字的影响、序列化...
2018-07-24 10:20:10
127
原创 Effective Java 总结(二) 对于所有对象都通用的方法
在改写equals的时候请遵守通用约定不改写equals方法时,每个实例只与自身相等,如果满足一下任意一个条件,则不需要改写equals方法:一个类的实例本质上都是唯一的 不关心类是否支持“逻辑相等”功能 超类已经改写了equals方法 类是私有的,并且可以确定它的equals方法永远不会被调用 改写equals方法时,需要遵守的约定:自反性(自己和自己相等) 对称性(x...
2018-07-24 09:48:53
128
原创 Effective Java 总结(一) 创建和销毁对象
考虑用静态工厂方法代替构造函数使用静态工厂方法的好处:静态工厂有名字,多个构造函数只能通过参数列表来区分,编写起来可能会比较麻烦(比如有相同参数列表),使用起来也容易混淆,但静态工厂方法通过名字就可以很容易地被区分; 静态工厂方法不必每次调用时都新建一个对象。 静态工厂方法只需返回一个对象,对于使用者是透明的,即使用者不用考虑内部怎么实现,以后修改起来也很方便。但是静态工厂方法和一般...
2018-07-22 15:49:32
220
原创 Java并发编程的艺术——读书笔记(五) Java内存模型基础
已经进入到第三章——java内存模型了,本篇先对这个概念做一个了解。第三章 Java内存模型(一) Java内存模型的基础并发编程的两个关键问题线程之间如何通信通信即交换信息的机制,线程之间的通信有两种方法:一是通过读/写内存中的共享变量进行隐式通信,一是线程之间互发消息进行显式通信,Java的并发采用的是共享内存模型,java线程之间的通信总是隐式的。线程之间如何同步同步...
2018-07-22 09:54:22
161
原创 Java并发编程的艺术——读书笔记(四) 原子操作的实现原理
第二章 Java并发机制的底层实现原理(三) 原子操作 原子在化学反应中是不可再分的基本微粒,因此那些不可被分割或者被中断的一系列操作就被称为“原子操作”,本篇重点解释原子性的重要意义和实现原理。为什么需要原子性首先来看一段程序:public class Practise { private int i = 0; public static void main(Strin...
2018-07-21 10:27:10
299
原创 Java并发编程的艺术——读书笔记(三) synchronized的实现原理与应用
第二章 Java并发机制的底层实现原理(二) Java对象头Java对象头中以一字宽的长度存储Mark Word,里面包含了对象的hashCode,分代年龄和锁标记位,Mark Word在32位JVM中的默认存储结构如下:运行期间,Mark Word的数据类型会随着锁标记位的改变而改变,一共有四种情况: 锁的级别从低到高依次是,无锁,偏向锁,轻量级锁,重量级锁,...
2018-07-20 12:25:33
214
原创 Java并发编程的艺术——读书笔记(二) volatile的应用
第二章 Java并发机制的底层实现原理(一) 这一章有三个内容,volatile的应用,synchronized的实现原理与应用,和原子操作的实现原理,我想分开说,这次先写volatile的相关内容。volatile实现原理保证可见性,不能保证原子性首先提一下缓存,一般来说,对于存储设备,相同的造价,存储空间和读写速度是呈反相关的,因此存储设备会根据需求来设计偏向,通俗一点说就...
2018-07-20 10:42:18
148
原创 Java并发编程的艺术——读书笔记(一) 并发编程的挑战
第一章 并发编程的挑战 因为最近找工作,准备笔试/面试,开始尝试阅读这本书,我不常写博客,距上一次写已经过去大概一年时间了,连优快云密码都忘了/衰,所以这次新开一个账号重新开始,希望我能坚持下去。第一章没什么内容,我认为其目的主要是给出足够多的阅读这本书的理由,了解一些基本概念,和让新人快速适应环境吧,那,现在开始吧。 上下文切换上下文:以前学习Spring的时候总是不知...
2018-07-19 11:08:22
459
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人