Java技术
文章平均质量分 77
bladestone
15年的软件行业开发经验,9年项目管理经验;5年爬虫经验
展开
-
JVM简介
引言:学习Java语言的工程师,都不可避免会碰到JVM这个名词,虽然在开发中使用不多,但是了解起功能和底层的功能原理,对于大家更深入的掌握Java还是非常有帮助的,这里讲对JVM做一个简要的综述。原创 2016-07-25 23:39:56 · 4024 阅读 · 2 评论 -
JVM的栈上分配与逃逸分析(Escape Analysis)
引言:栈上分配与逃逸分析是在JVM层面进行java性能优化的一个技巧,本文将深入解读其应用以及原理。原创 2016-07-28 00:16:08 · 13238 阅读 · 3 评论 -
JVM的内部结构和启动流程
引言:对于Java工程师来说,JVM一直是一个神秘的存在,对于多线程编程来说,大体都是一知半解;究其根本,一般皆是未曾深入了解一下JVM的内部机制和结构,本文讲深入剖析其中的核心内容:内部结构和启动流程原创 2016-07-27 23:27:21 · 1317 阅读 · 0 评论 -
JVM之永久区Permanent区参数设置分析
引言: JVM中的内存区域一般分为3个部分: 年轻代、年老代和永久代;永久代在JDK 7中逐渐变化,到JDK 8之后完全消失,合并到了Native堆中。本文将逐个分析其中的使用和状况。原创 2016-08-03 17:56:25 · 15671 阅读 · 1 评论 -
JVM之栈优化
引言: 在JVM中除了堆heap之外,还有stack栈;栈速度快,空间小,主要用于存放方法级别的临时数据,本文将分析其使用以及注意事项。原创 2016-08-03 18:32:42 · 1022 阅读 · 0 评论 -
Spring Boot的Profile切换方式
引言: Spring Boot是Spring社区基于之前的技术积累,而开发出来的一套快速开发框架,针对不同的profile来如何切换呢?这个和之前的mvn方式有所区别。原创 2016-06-06 14:33:24 · 12221 阅读 · 0 评论 -
DOM4j解析XMl中碰到的问题解决
引言: DOM4j是java中最为流行的xml解析类库,在使用过程中,碰到了若干问题,这里记录一下,方便后续查询。原创 2016-08-16 10:27:17 · 9018 阅读 · 0 评论 -
Jackson之JSON包的使用分析
引言: JSON的流行推动了JSON开发包的大量使用,如何高效、简便的开发json字符串的输入和输出,是我们在开发中经常会碰到的问题,这里我们以jackson2为例来讲解如何使用它。原创 2016-08-15 16:52:19 · 29649 阅读 · 4 评论 -
JVM的线程内存模式与锁分析
引言:在Java语言中,线程的引入对于多核时代而言是一个巨大的福音,与之伴生的是同步与锁的使用让Java线程的管理、调试变得异常复杂,为了帮助大家更深入的理解线程的使用,我们首先来深入了解线程的内存操作模型,然后一切都会变得云开雾散。原创 2016-08-01 11:19:36 · 1504 阅读 · 0 评论 -
Spring-boot开发之DevTool工具
引言: 在Spring-boot开发中,有一定的门槛,需要提升其开发效率,该如何来进行呢?原创 2016-08-01 15:12:47 · 4919 阅读 · 0 评论 -
JVM调试追中参数设置
引言: JVM提供了诸多的参数配置,打印出当前JVm的各类信息,方便后续进行Java应用的排查,本文将详细介绍若干常用的JVM调试追踪参数。原创 2016-08-02 10:57:30 · 6015 阅读 · 0 评论 -
Spring Boot应用中Messages资源信息在Thymeleaf中的显示错误问题
引言: Thymeleaf是Spring Boot中使用的一种后台的模板技术,在Spring Boot中碰到了在页面上无法访问messages中信息的问题,本文将描述其分析过程以及如何解决该问题原创 2016-08-27 14:50:48 · 12562 阅读 · 4 评论 -
JVM之指令重排分析
引言:在Java中看似顺序的代码在JVM中,可能会出现编译器或者CPU对这些操作指令进行了重新排序;在特定情况下,指令重排将会给我们的程序带来不确定的结果....原创 2016-08-08 15:49:28 · 27150 阅读 · 2 评论 -
Spring Boot下Druid连接池的使用配置分析
引言: 在Spring Boot下默认提供了若干种可用的连接池,Druid来自于阿里系的一个开源连接池,在连接池之外,还提供了非常优秀的监控功能,这里讲解如何与Spring Boot实现集成。1. 环境描述 Spring Boot 1.4.0.RELEASE, JDK 1.82. Druid介绍 Druid是一个JDBC组件,它包括三部分: DruidD...原创 2016-08-31 14:31:59 · 122631 阅读 · 18 评论 -
Windows 7下端口占用的进程分析
引言: 在windows下进行开发之时,经常会发现某端口被占用,一般情况下,只能重启系统来草率解决问题,这里我们将通过进程的停掉,释放端口的方式来解决这个问题。原创 2016-09-01 11:42:15 · 1159 阅读 · 0 评论 -
JVM内存设置参数分析
引言:JVM提供了诸多的参数进行JVM各个方面内存大小的设置,为Java应用进行优化提供了诸多的工具,本文将会详细分析各个参数的功能与使用。原创 2016-08-02 14:33:26 · 11535 阅读 · 0 评论 -
插入排序和迭代归并排序以及复杂度分析
引言: 算法是计算机科学中的基础,程序=算法+数据结构,算法描述了我们将如何来处理数据的过程。本文将介绍两种算法的实现以及其中一种算法的复杂度分析过程。原创 2016-09-18 15:10:49 · 2955 阅读 · 0 评论 -
Java线程Daemon线程分析
引言: 在Java线程模型中,守护线程(daemon是一种特殊的线程),本文将讲解其使用以及相关信息。原创 2016-09-18 19:28:26 · 911 阅读 · 0 评论 -
如何Dump当前Java应用的内存结构,并进行分析找到占用空间最大的Class
引言:在Java应用中,对于内存的占用是一个让人头疼的问题,那在我们怀疑内存占用出现问题时,如何找到我们想要的答案,比如哪个占用了最多的内存,本文讲尝试给出一个思路。原创 2016-09-18 23:00:42 · 14210 阅读 · 0 评论 -
Btrace使用说明
引言:Btrace是一个非常奇特的工具,非侵入式的工具,可以监控程序中发生的运行状态,本文将介绍如何使用Btrace来完成监控工具。原创 2016-09-18 23:33:41 · 2163 阅读 · 0 评论 -
诡异的线程加锁问题
引言:在Java中,对于互斥的代码块,我们需要使用synchronized来进行线程安全的保证,本文将针对某个synchronized的锁实例中发生的问题来分析。原创 2016-09-19 22:12:54 · 1360 阅读 · 0 评论 -
JPA之"could not initialize proxy - no Session"的异常解决
引言: 在使用JPA中经常会碰到各类问题,这里列出解决no Session问题的方法。原创 2016-09-08 16:23:55 · 9266 阅读 · 2 评论 -
Spring Boot下的lombok安装以及使用简介
引言:Spring Boot是非常高效的开发框架,lombok是一套代码模板解决方案,将极大提升开发的效率,这里介绍给大家使用。1. Lombok Lombok想要解决了的是在我们实体Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写,以期方便使用的方法;在使用Lombok之后,将由其来自动帮你实现代码生成,注意,其是...原创 2016-10-24 11:50:46 · 35633 阅读 · 3 评论 -
Maven中基于POM.xml的Profile来动态切换配置信息
引言: 在实际项目中,总会有若干个环境需要适配,各个环境下需要独立一套配置信息,该如何来简单快捷解决此类问题呢?Maven中的profile方式将帮你快速解决此类问题。原创 2016-10-17 14:48:24 · 23357 阅读 · 4 评论 -
Spring Boot下基于Profile动态替换配置信息
引言: 在SpringBoot对程序开发做了大量的简化和约定,本文将基于Spring Boot来展示如何进行profile的切换以及部署中基于profile中进行配置信息的动态替换。原创 2016-10-17 15:57:24 · 13490 阅读 · 0 评论 -
JPA中的could not initialize proxy - no Session异常分析与解决
引言: JPA是一种非常流行和常用的持久化框架标准,其下可以对接若干种不同的实现,在不同的父子表管理中,经常会碰到no Session的问题,该如何解决呢?原创 2016-10-24 17:03:32 · 37105 阅读 · 20 评论 -
JVM之偏向锁应用及性能分析
引言: 偏向锁在JVM中是一个轻量级锁,本文将分析其原理、应用场景以及在不同的JDK场景下的性能差异,从而让我们对其有更深的理解。原创 2016-11-28 16:15:12 · 3166 阅读 · 0 评论 -
JVM中jmap无法连接java进程的问题
引言: 在JVM的实际应用中,一般无法通过图形化的界面来进行JVM的观察和问题确定,一般都需要通过命令来进行,这里碰到的问题是无法连接上java进程....原创 2017-03-09 15:19:43 · 30080 阅读 · 0 评论 -
Java异常打印输出中常见方法的分析
Java异常是在Java应用中的警报器,在出现异常的情况下,可以帮助我们程序猿们快速定位问题的类型以及位置。但是一般在我们的项目中,由于经验阅历等多方面的原因,依然有若干的童鞋在代码中没有正确的使用异常打印方法,导致在项目的后台日志中,没有收到日志或者日志信息不完整等情况的发生,这些都给项目埋下了若干隐患。本文将深入分析在异常日志打印过程中的若干情况,并给出若干的使用建议。原创 2017-04-30 22:10:35 · 22860 阅读 · 4 评论 -
Freemaker的java.beans.IntrospectionException: type mismatch between read and write methods
引言:freemaker在特定的spring以及jdk下的问题解决路径。环境描述spring 3.1.1, jdk1.8u80, freemake 2.3.19错误信息描述: 严重: Exception sending context initialized event to listener instance of class org.jeecgframework.web.system.lis原创 2017-07-12 09:46:47 · 3972 阅读 · 1 评论 -
Java安全体系(JCA)分析
Java 密码体系结构(JCA)包括:Java 密码扩展(Java Cryptography Extension (JCE))、Java 安全套接字扩展(Java Secure Socket Extension (JSSE))以及 Java 认证和授权服务(Java Authentication and Authorization Service (JAAS))。其中后两个部分提供了用于认证、原创 2006-06-06 11:00:00 · 2905 阅读 · 0 评论 -
通信加密简述
MD(Message Digest)消息摘要:为一种函数,它接受一个任意长度消息作为输入,并产生一个表示消息特征的定长字符串;其最大属性为不可逆性。CA(certificate Authority)中的证书包含密钥属主信息、公用密钥及其签名信息。DN由一系列RDN(Relative distinguished name,相对标识名)在其他一些实体的名字空间中指定实体的名字构成,RDN就象D原创 2006-06-09 14:40:00 · 1174 阅读 · 0 评论 -
Spring Boot下如何自定义Repository中的DAO方法
环境配置介绍jdk 1.8, Spring Boot 1.5.3.RELEASE, Mysql, Spring Data, JPA问题描述Spring Data提供了一套简单易用的DAO层抽象与封装,覆盖的CURD的基本功能,但是在诸多的情况下,需要用户自定义DAO的实现方法,来实现更为复杂和精细的数据库访问操作,该如何来解决这个问题?目标描述这里我们以自定义testAA的方法为例,来介绍如何实现原创 2017-05-31 16:27:58 · 26273 阅读 · 6 评论 -
Java之JVM逃逸分析
引言: 逃逸分析(Escape Analysis)是众多JVM技术中的一个使用不多的技术点,本文将通过一个实例来分析其使用场景。概念逃逸分析,是一种可以有效减少Java 程序中同步负载和内存堆分配压力的跨函数全局数据流分析算法。通过逃逸分析,Java Hotspot编译器能够分析出一个新的对象的引用的使用范围从而决定是否要将这个对象分配到堆上。 在计算机语言编译器优化原理中,逃逸分析是指分析指针动原创 2017-07-26 23:12:24 · 14099 阅读 · 11 评论 -
Java之引用类型分析(SoftReference/WeakReference/PhantomReference)
引言: 即使对于Java的很多老鸟来说,如果忽然问他引用的类型,大概率是一脸茫然,不知所措的….Java中的引用还分类型,神马情况??? 本文将针对这些类型进行分析,帮助您一文知所有类型。Java的类型在Java中存在的类型有两大阵营: 基本数据类型和Java Class。所谓的基本数据类型包括: byte, char, int, float, double, long, boolean。数组原创 2017-07-28 14:24:28 · 934 阅读 · 0 评论 -
Maven之Unable to load the mojo 'resources' (or one of its required components)
环境情况Eclipse, Java项目问题表现 Description Resource Path Location Type Execution default-resources of goal org.apache.maven.plugins:maven-resources-plugin:2.6:resources failed: Unable to load原创 2017-09-11 10:04:26 · 10247 阅读 · 3 评论 -
Spring Boot与Log4j2集成之java.lang.IllegalStateException: Logback configuration error detected:
引言: 一个问题的分析与解决过程是表与里的过程,是一个大胆猜测与小心求证的过程,spring boot与log4j2的集成过程中,我将描述一下分析这个问题的思路和过程。 我一直强调一点: 重要的不是解决问题的结论,而是解决问题的思路和方法,即使在解决完问题之后,依然需要回过头复盘,在问题分析过程中的走过的弯路。1 项目情况介绍Spring Boot 1.5.7 , JDK 1.8, Log4j2.原创 2017-09-27 11:54:23 · 66406 阅读 · 15 评论 -
Spring Boot中实现可重载的MessageSource简明教程
引言: 在Spring Boot中messages中定义的信息,如果发生变更,则需要重启应用。那该如何实现才可以不重启应用的情况下替换messages中的展示信息呢?本文将给出一个简要的教程。1. MessageSoure的资源配置与读取在之前的文章中,已经介绍过了如何在Spring Boot中进行资源的配置和读取以及相应的测试代码,感兴趣的读者,可以参照Spring Boot中支持i18n简明教程原创 2017-09-28 10:56:37 · 11186 阅读 · 6 评论 -
Spring Boot中支持i18n简明教程
引言: 本文将介绍如何在spring boot支持i18n的最简单设置。原创 2017-09-27 18:37:32 · 13547 阅读 · 0 评论 -
基于JPA获取查询中的单条记录
引言:JPA与SpringData中提供了诸多非常便利的方法,这里以如何以不书写SQL的方式来实现单条记录的查询。repositories.limit-query-result这个标题为Spring Data提供了内置功能,这些查询方法需要使用first/top等关键词,这两个关键词是彼此可以替代的。 可选的数字值用以表示最大可以返回的记录条数,一般都是放在first/top的右边。Example原创 2017-10-13 16:23:40 · 35450 阅读 · 1 评论