[笔记]Java 多线程编程核心技术

1.Java 多线程技能 1.使用 interrupt 方法中断线程,不要使用 stop、suspend等方法(不安全、且已被废弃) 当对一个线程调用了 interrupt()之后,如果该线程处于被阻塞状态(比如执行了wait、sleep或join等方法),那么会立即退出 »

碎片知识

DevOps 可参考码农翻身《什么是DevOps》 目前对 DevOps 有太多的说法和定义,不过它们都有一个共同的思想:“解决开发者与运维者之间曾经不可逾越的鸿沟,增强开发者与运维者之间的沟通和交流”。而我个人认为,DevOps 可以用一个公式表达: 文化观念的改变 + »

ActiveMQ1--安装、配置

1.下载安装 ActiveMQ ActiveMQ 官网下载地址:http://activemq.apache.org/download.html 可根据操作系统不同,下载不同版本,此处我下载的是apache-activemq-5.15.2-bin.tar.gz linux 版本 »

Java并发编程1——volatile关键字解析

阅读Java并发编程:volatile关键字解析一文后有感。 并发编程中的三个概念 原子性 即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 可见性 可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到 »

Spring中默认bean名称的生成策略/方式修改

在公司不同团队开发再整合时经常会遇到一个问题(公司架构基于SpringMVC),就是在使用注解的时候,两个模块里的这个资源都叫 xxxService ,这样在 Spring 启动的时候就会报错。错误如下 conflicts with existing, non-compatibl »

Spring Boot学习3——日志管理

Spring Boot在所有内部日志中使用 Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J, Log4J2 和 Logback。每种 Logger 都可以通过配置使用控制台或者文件输出日志内容。 默 »

Spring Boot学习2——自定义banner

Spring Boot程序启动的时候,会输出由字符组成的Spring符号,这个就是Spring Boot为自己设计的Banner。 其实我们可以自定义banner: 1.开启/关闭Banner Spring Boot 1.x 方法1.在Application的main方法中设置 »

Spring Boot学习1——配置文件

读取核心配置文件 核心配置文件是指在 resources 根目录下的 application.properties 或 application.yml 配置文件,读取这两个配置文件的方法有两种,都比较简单。 核心配置文件 application.properties 内容如下: »

断点续传

1.断点续传——下载 其实断点续传的原理很简单,就是在Http的请求上和一般的下载有所不同而已。 以七牛文件服务器为例,使用curl命令模拟分段请求,请求时把 respons 的 header dump 到一个文件里: 命令如下: cd /tmp/range/ curl - »

Springboot启动

Maven是一个常用的构建工具,但是Maven的版本和插件的配合并不是那么完美,有时候你不得不切换到一个稍微旧一些的版本,以保证所有东西正常工作。 而Gradle提供了一个Wrapper,可以很好解决版本切换的问题,当然更重要的是不需要预安装Gradle。 Maven虽然没有官方 »

Ubuntu14.04服务器篇

这个周末赶上阿里云和某东关于云服务器掐架,新用户花5元即可购买半年 ECS (配置为1核2G1M,国内三个可用区)。果断撸了一台。正好下午有时间测试一下。 1.java 环境配置 1.1 先下载jdk http://www.oracle.com/technetwork/java »

Java通过BCrypt加密

一、概述 在用户模块,对于用户密码的保护,通常都会进行加密。我们通常对密码进行加密,然后存放在数据库中,在用户进行登录的时候,将其输入的密码进行加密然后与数据库中存放的密文进行比较,以验证用户密码是否正确。 目前,MD5和BCrypt比较流行。相对来说,BCrypt比MD5更安 »

Awesome Java

JAVA资源大集合 Awesome-java得到了7490个Star,作者将JAVA中那些最常用的第三方库按照分类整理成了一个列表。包含Ancients(古老,但常用的),Bean Mapping,Build,Bytecode Manipulation,Code Analysi »

Findbugs使用

github地址 FindBugs 作用 开发人员在开发了一部分代码后,可以使用FindBugs进行代码缺陷的检查。提高代码的质量,同时也可以减少测试人员给你报的bug数。 Findbugs是一个静态分析工具,它检查类或者JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问 »

CopyOnWriteArrayList分析

ArrayList 是比较常用的一个可变大小的数组集合,但是是不能同步的。如果多个线程同时访问一个 ArrayList 实例,其中至少一个线程从结构上修改了列表,那么它必须保持外部同步。一般通过加锁对象进行同步操作来完成,如果不存在这样的对象,则应该使用 Collections. »

Java 新生代、老年代、持久代、元空间

Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。 在 Java 中,堆被划分成两个不同的区域:年轻代 ( Young )、老年代 ( Tenured)。年轻代 ( Young ) 又被划分为三个区域:Eden、From Survivor、T »

JAVA面试官

java面试官如何面试别人(一)   java面试官的“面试心得”   1.笔试、面试去评价一个人肯定是不够准确的,了解一个人最准确的方式就是“路遥知马力,日久见人心”。通过一、二个小时内的做题、交流,只是没有其他办法下进行的无奈之举,所以通过了面试不代表有多成功,没通过也不代 »