Java
程序员小樊
不好好写代码的程序员不是好项目经理
展开
-
面试关于String字符串的各种问题,看这篇文章彻底明白Java1.6和1.8版本与字符串相关的所有问题和原理,不再害怕面试官!
目录解释字符串常量和串池的关系字符串变量拼接时jvm如何工作的?Jvm编译期优化使用intern()主动将串池中没有的字符串放入串池首先伙伴们回答一下关于Java String类在面试中经常遇到的问题,如果你能完全回答正确并且明白其实现逻辑,接下来的内容你可以忽略,跟你已经没有关系了。public class StringTest { public static void main(String[] args) { //运行环境jdk1.8原创 2020-07-18 22:34:59 · 197 阅读 · 0 评论 -
通过使用策略模式模拟实现Java线程池逻辑和研究线程池的实现原理,自己一定要动手写一下才知道里面的奥妙。
前几天写了一个固定大小的连接池,今天通过学习又整理一下线程池的实现逻辑,看完这片代码,Java线程池的基本思想你就能完全hold住,离着高级程序员又近一步,欢迎大家参考和交流。package com.smallfan.connectionpool;import lombok.extern.slf4j.Slf4j;import java.util.ArrayDeque;import java.util.Deque;import java.util.HashSet;import java..原创 2020-05-30 23:07:10 · 321 阅读 · 0 评论 -
连接池的作用就是为了提高性能,既然能提高性能还等啥,我们自己模拟编写一个连接池,探其究竟,明其原理。
连接池的作用就是为了提高性能。连接池的作用:连接池是将已经创建好的连接保存在池中,当有请求来时,直接使用已经创建好的连接对数据库进行访问。这样省略了创建连接和销毁连接的过程。这样性能上得到了提高。基本原理是这样的:建立数据库连接池对象(服务器启动)。 按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。 对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。 存取数据库。 关原创 2020-05-28 23:52:05 · 327 阅读 · 0 评论 -
通过模拟银行账户取钱操作,彻底了解Java多线程中的乐观锁和悲观锁!
悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。乐观锁总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断原创 2020-05-23 23:53:01 · 886 阅读 · 0 评论