大白话之必会Java Atomic | 线程一点也不安全(一):比自增和synchronized更快速、靠谱的原子操作(调用C语言)
   前言 阅读本篇文章,你需要对下方知识有所了解: synchronized关键词的作用 线程池的作用(这里) 不靠谱和慢动作 在多线程环境下: 操作靠谱程度执行速度 i++ 自增运算没戏不赖 synchronized贼棒太废 不靠谱的自增 操作类 假如我们现在有一个变量:num 我们这个变量设置两个方法: 方法返回值作用 plus()void将num自增(+1) getNum()Integer返回num的值 代码如下: class ......
大白话   原理   Java   多线程   |  2019-06-11   4 评论   33,288 浏览

Log-MySQL root用户登录后无法查看数据库全部表/正常访问数据库 Access denied for user 'root'@'localhost' to database
   今天在对MySQL进行建表、权限设置之后,突然发现没有了数据库的操作权限: mysql> show databases; +--------------------+ | Database | +--------------------+ | mysql | +--------------------+ 1 rows in set (0.00 sec) WTF?我的数据库去哪了? 之后赶紧从外部访问了数据库,发现数据仍在,没有丢失。 此时我判断,可能 ......
Log   MySQL   |  2019-04-11   0 评论   18,952 浏览

大白话之Docker(叁):制作一个运行Tomcat服务端的Docker镜像
   前言 如没看过上一章,请点我跳转 上一章我们使用Tomcat镜像搭建了一个WEB服务端。 本章,我们将从零开始搭建一个Tomcat服务端。大体需要以下步骤: 在容器中安装一个系统(我使用Ubuntu) 在容器中安装JDK并配置环境变量以运行Tomcat 在容器中拷贝Tomcat 既然目标已经明确,那么我们就开始吧。 初始化项目 下载文件 在项目开始之前,我们需要下载所需的文件: JDK 1.8 Tomcat 9 解压文件 将JDK和Tomcat的压缩包解 ......
大白话   Docker   |  2019-04-14   0 评论   19,165 浏览

Github仅保留指定文件/文件夹当前Commit,删除所有历史记录,清除「敏感信息」
   前言 之前在Github上发布过一个项目,今天突然想起来: 有个不该上传的东西被我上传上去了! 于是便修改了源代码,但是在History中还是能看到以前的提交记录! 慌! 在网上查找了半天,发现都是使用git filter-branch进行清除,但我的项目有点特殊: 这个敏感信息,早在第一次就提交过了! 而git filter-branch还有其它方法是对项目进行回滚,达到删除Commit记录的目的,对我来说是无效的。 BFG 最后发现了一个神器:BFG-R ......
GitHub   |  2019-05-02   1 评论   4,017 浏览

将Tomcat、MySQL从Linux迁移到Windows的心路历程(干货):令人恐惧的字符编码
   前言 近日打算对服务端进行进一步的解耦,便购入了云数据库服务,将数据库独立,使得Tomcat主机独立运行,提高安全性和便利性。 心血来潮,想将服务器重装为Windows,便有了下面的一系列文章: 迁移MySQL 平时我都是使用Navicat对MySQL进行管理。在备份的第一时间我便想到了使用Navicat进行数据的迁移。 Dump SQL File 右键指定的数据库,选择Dump SQL File -> Structure + Data就可以将选定 ......
Tomcat   Linux   Windows   UTF-8   |  2019-05-03   3 评论   34,300 浏览

Spring: java.lang.NoSuchMethodError: clearCache | ClassNotFoundException | Error during artifact deployment 思路及解决办法
   前言 一如既往的今天,打算打开WEB项目一如既往地修(写)BUG。就在我运行的时候,弹出了错误: java.lang.NoSuchMethodError: org.springframework.core.ResolvableType.clearCache() at org.springframework.context.support.AbstractApplicationContext.resetCommonCaches(AbstractApplicat ......
JavaWeb   SpringMVC   Debug   Tomcat   |  2019-05-04   1 评论   33,371 浏览

大白话之Java反射-初学最迷的概念:能干啥?咋用?
   前言 初学时,反射、网络编程、IO是我最不能理解的三大模块。 当时查资料,给我的感觉是:写文章的都觉得我已经会了。 如今,我用实例尽可能简单地讲述反射这个东西。 能干啥? 人类文明分为三个阶段: 女娲创造人类 人类文明建立,地球产生秩序 人类灭亡 实例化 平常我们实例化一个类,都是用: Main main = new Main(); 那如果要读取这个类中的公共变量,我们需要: public class Main { public String valu ......
Java   大白话   反射   原理   |  2019-06-03   0 评论   32,773 浏览

大白话之Java面向接口编程:最“正经”的中文实例讲解,看不懂来打我!
   前言 作为一个正经博主,我会用最纯洁易懂的方式让你理解面向接口编程。 阅读本篇文章,你需要对以下知识有所了解: 面向对象编程基础知识 接口(这儿有) 实例 废话少说。打开你的IDE(没有?去下!),新建一个类,命名为Main,复制下方代码: interface 动作 { void 结婚(); void 生孩子(); } class 如花 implements 动作 { @Override public void 结婚() { System.out.pri ......
大白话   Java   接口   设计模式   |  2019-06-03   2 评论   33,108 浏览

大白话 | 课堂实践:使用Iterator对数组进行遍历
   前言 阅读本篇文章,你需要对以下知识有所了解: 接口(这儿有) Iterator的使用 Java 匿名内部类 构思 我们都知道,Iterator是一种迭代器,它的接口中有四种方法(JDK 1.8): public interface Iterator<E> { boolean hasNext(); E next(); default void remove() { throw new UnsupportedOperationException ......
大白话   课堂实践   Java   原理   |  2019-06-06   0 评论   31,949 浏览

大白话之fail-fast | fail-safe:为什么会有这个机制?它有什么作用?
   前言 阅读本篇文章,你需要了解下列知识: 多线程的实现(看过来) Iterator的使用 ArrayList的使用和如何实现Iterator 为什么会有这个机制? 举个栗子 有一杯水、两个人(黄渤和红雷) 黄渤拿起了水杯,开始喝水 红雷到达案发现场,想抢走水杯喝水 黄渤很生气,并锤了红雷一顿 映射关系 将上面的栗子翻译一下: 有一个ArrayList、两个线程(Thread1和Thread2) Thread1请求并开始使用Iterator遍历Arr ......
大白话   Java   原理   运行机制   |  2019-06-08   0 评论   34,196 浏览

刨根问底 | 大白话:在使用注解后,框架是怎么知道你哪个方法使用了注解的?用@RequestMapping注解举例详解!
   前言 阅读本篇文章,你需要理解以下的知识: 重要:反射 (参考) Java enum 接口的使用 了解注解是什么、该什么时候使用 最好接触过Spring(因为用@RequestMapping举例) 先说说注解 如果你熟悉Spring框架,你一定使用过这个注解: @RequestMapping(value = "/admin/index.html", method = RequestMethod.GET) 这条注释的意思是: 用户访问"/admin/i ......
刨根问底   专项练习   大白话   Java   |  2019-06-10   1 评论   34,291 浏览

大白话之必会Java Atomic | 线程一点也不安全(二):Atomic的ABA问题会导致什么情况?如何解决?
   前言 第一章还没看过?点我可以穿越 阅读本篇文章,你需要了解以下知识: Atomic是什么?(点此跳转) 单向链表的原理 从上一章的内容,我们可以了解到,Atomic可以基本解决线程同步安全的问题。而本章我们将讨论Atomic的缺点与它的原子性。 ABA问题 什么是ABA问题?首先我们都知道,Atomic的CAS模型,会先读取变量的值,作为预期旧值,然后再基于旧值产生操作生成新值,再确认变量是否为预期旧值,如果是,修改为新值。 我们以单向链表来演示ABA ......
大白话   原理   Java   多线程   |  2019-06-21   2 评论   33,244 浏览

随笔 | 奇淫技巧 | Java:记return和短路运算符的妙用
   在阅读AtomicStampedReference的源码中,在compareAndSet()方法发现一段代码: return expectedReference == current.reference && expectedStamp == current.stamp && //上方条件全部符合且为True时,执行下方代码 ((newReference == current.reference && new ......
随笔   奇淫技巧   Java   |  2019-06-21   0 评论   29,229 浏览

随笔 | Tomcat:续-从Linux迁移到Windows编码问题彻底解决
   前言 继上条博文 将Tomcat、MySQL从Linux迁移到Windows的心路历程(干货):令人恐惧的字符编码 后,我发现控制台随后仍出现了一些乱码,并不受到在conf/logging.properties文件修改GBK后的影响,它输出的仍是UTF-8,导致控制台仍然蓝屏。 排查方向 这次的错误排查,我换了个方向,上一次是针对修改Tomcat的配置,这一次是在不变动Tomcat配置的情况下,让Windows适应其配置。 解决问题 控制台编码 了解系统的朋 ......
随笔   Tomcat   Java   |  2019-06-27   2 评论   28,759 浏览

大白话之AutoClosable接口 | try-with-resources:JDK1.7的新特性,提高重复回收效率
   前言 无论是使用文件IO流,还是网络Socket流,都免不了调用close()将流关闭。如果需要操作的流过多,就会导致混乱。 一旦忘记将关闭方法放到finally中,很有可能出现流未被关闭,占用大量内存空间的问题。 流程简化 对比 try-catch-finally AC ac = null; AC2 ac2 = null; try { ac = new AC(); ac2 = new AC2(); } catch (Exception e) { } fi ......
大白话   语言特性   Java   |  2019-07-02   2 评论   31,409 浏览