学习记录
yygr
这个作者很懒,什么都没留下…
展开
-
3月7日学习记录
3月7日1.栈内存和堆内存的区别声明的变量存在栈内存中。创建的对象存在堆内存中。例如:Person per = new Person();//这其实是包含了两个步骤,声明和实例化Person per = null; //声明一个名为Person类的对象perper = new Person(); // 实例化这个per对象声明 指的是创建类的对象的过程。实例化 指的是用关键词n...原创 2019-03-07 11:08:19 · 154 阅读 · 0 评论 -
5月13日学习记录 多线程语法相关问题
多线程语法梳理参考: https://www.jianshu.com/p/01188fa8e511volatile关键词多线程访问共享变量吗,为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量。Java语言提供了volatile,在某些情况下比锁更加方便。如果一个字段被声明成volatile,java线程内存模型确保所有线程看到这个变量的值是一致的。使用voli...转载 2019-05-13 15:55:39 · 120 阅读 · 0 评论 -
5月9日学习记录
线程池的配置策略1、 考虑业务类型除了考虑计算机性能外,更多的还是考虑业务逻辑,如果业务是运算密集型的,不适合开太多的线程,因为运算一般是cpu在算,cpu本身就是用于计算,极快,因此一个线程很快就能计算完毕。线程多了反而增加了资源的消耗。另一种是IO密集型业务,这种业务就比较是适合开多一点线程,因为IO、通信这些业务本身就是非常慢的,大部分的系统的瓶颈都集中这两方面。因此这些业务适合开多个线...原创 2019-05-09 18:09:37 · 131 阅读 · 0 评论 -
5月8日学习记录
Java并发编程之Object.wait()/notify()详解等待/通知机制一个线程修改了一个对象的值,而另一个线程感知到了变化,然后进行相应的操作,整个过程开始于一个线程,而最终执行又是另外一个线程。前者是生产者,后者是消费者,这种模式隔离了“做什么”(What)和“怎么做”(How),在功能层面上实现了解耦,体系结构上具备良好的伸缩性,在Java语言中是如何实现类似的等待/通知机制的呢...原创 2019-05-08 17:17:16 · 115 阅读 · 0 评论 -
4月23日 多线程相关问题
TPS和QPS的区别和理解QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务...原创 2019-04-23 18:18:13 · 121 阅读 · 0 评论 -
4月8日学习记录
1.static关键字“static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。”方便在没有创建对象的情况下来进行调用(方法/变量)。在printValue方法内部的value是局部变量,根本不可能与this关联,所以输出结果是33。...原创 2019-04-09 17:41:46 · 115 阅读 · 0 评论 -
4月9日学习记录
1.transient如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。换句话来说就是,用transient关键字标记的成员变量不参与序列化过程。2.volatile说简单点,volatile就是表示某人或某物是不稳定的、易变的。volatile作为java中的关键词之一,用以声明变量的值可能随时会别的线程修改,使用volatile修饰的变量会强制将修改的值立即写入...原创 2019-04-12 10:41:33 · 122 阅读 · 0 评论 -
3月14日学习记录
1.集合迭代器Iterator和ListIterator的区别iterator()方法在set和list接口中都有定义,但是ListIterator()仅存在于list接口中(或实现类中);ListIterator有add()方法,可以向List中添加对象,而Iterator不能ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍...原创 2019-03-19 10:09:53 · 106 阅读 · 0 评论 -
3月21日学习记录
Set集合类总结Set的结构Set集合是借助Map集合实现的,其中Map的key用来存放Set的值,而Map的value使用一个固定的对象来占用,如HashSet的结构:private transient HashMap<E,Object> map;private static final Object PRESENT = new Object();public boolea...原创 2019-03-21 14:16:13 · 102 阅读 · 0 评论 -
5月22日学习记录 jvm基础知识
堆和栈的区别栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;堆解决的是数据存储的问题,即数据怎么放、放在哪儿。在Java中一个线程就会相应有一个线程栈与之对应,这点很容易理解,因为不同的线程执行逻辑有所不同因此需要一个独立的线程栈。而堆则是所有线程共享的。栈因为是运行单位,因此里面存储的信息都是跟当线程(或程序)相关信息的。包括局部变量、程序运行状态、方法返回值等等;而堆只负责存储...原创 2019-05-23 10:03:31 · 122 阅读 · 0 评论