Java基础
文章平均质量分 59
焗个面包
没有人在年少的时候想做个普通人
展开
-
我真的了解基本数据类型和引用类型的自动拆装箱吗?
自动拆装箱原创 2017-09-06 10:51:19 · 292 阅读 · 0 评论 -
《阿里巴巴Java规范》读后感和笔记
读《阿里Java规范》笔记原创 2017-10-14 23:48:55 · 514 阅读 · 0 评论 -
最直白的方式直面Java多线程
毫无疑问,网上关于多线程的讲解很多,各种概念也很复杂,我们该怎么去理解多线程?该如何最直观的面对它,先看一段简单的代码:package cn.com;public class TestMainNoRunnable { public static void main(String[] args) { long startTime=System.currentTimeMil...原创 2018-08-30 20:27:58 · 224 阅读 · 0 评论 -
使用ConcurrentHashMap实现缓存
说实话在各种第三方工具和缓存机制的成熟方案太多了,使用Java原生的ConcurrentHashMap意义实在不大,但是有时候自己想偷懒就用个简单的缓存ConcurrentHashMap还是能用的上的,首先我们要了解ConcurrentHashMap是什么? ConcurrentHashMap的简要总结:1、public V get(Object key)不涉及到锁,也就是说获得对象时没有使...原创 2018-08-29 18:23:52 · 10410 阅读 · 3 评论 -
两张图理解volatile关键字
最近又看了一下volatile关键字,以前觉得花很大功夫才理解的东西发现其实也没自己想的那么难,画个模型图然后再跑跑代码感觉很容易就理解了,而且记的也牢,虽然JDK1.7,JDK1.8的synchronized关键字已经优化的很好了,但也不能synchronized关键字一条道走到黑,哈哈。内存模型概念计算机执行程序时,指令都是由cpu执行的,执行指令必然会涉及到数据的读写,cpu执行...原创 2018-09-09 12:22:24 · 1253 阅读 · 0 评论 -
linux mysql5.7以上设置中文字符集不在/mysql/my.cnf下面了
今天安装了最新的mysql,想改字符集为utf-8防止中文插入数据乱码,然后my.cnf配置文件啥都没有,改了也没用(手动笑哭)。正确姿势:1.vim编辑 /etc/mysql/mysql.conf.d/mysqld.cnf2.[mysqld]后面添加 character_set_server=utf8 保存退出3.#service mysql restart4.登录mysql...原创 2018-11-30 16:43:11 · 962 阅读 · 0 评论 -
Java的通过管道来实现线程通信
前言与一点思考最近使用golang的channel并发编程非常爽,又快又方便还不用考虑什么线程不安全的问题,同时在想老相好Java的channel类似实现有没有呢?Java四种通信方式,分别是synchronized关键字,while(true)轮询,wait和notify以及java.io.Pipe,实际上这个java.io.Pipe和go的channel逻辑是相似的。Java管道的认识...原创 2019-01-17 15:31:56 · 770 阅读 · 0 评论 -
mysql常用的优化操作
1. explain查看SQL执行计划在查询语句前加explain来查看SQL执行计划,其中五列比较重要:type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式key_len列,索引长度rows列,扫描行数。该值是个预估值extra列,详细说明。注意常见的不太友好的值有:Usi...原创 2019-01-19 18:09:48 · 361 阅读 · 0 评论