zhujiajun Java & Scala Developer A backend developer who loves design awesome things. Working for Dianping at in Shanghai, China.

分析ClassLoader工作机制-2

如何加载Class文件

ClassLoader加载一个class文件到JVM是需要经过的步骤。

  • 找到.class文件并把这个文件包含的字节码加载到内存中。

  • 字节码验证。

  • Class类数据结构分析及相应的内存分配。

  • 符号表的链接。

  • 初始化,类中静态属性和初始化赋值,以及静态代码块的执行。

分析ClassLoader工作机制-1

classLoader类加载器,作用如下:

  • 将class加载到JVM中。

  • 检查每个类应该由谁加载,是一种父优先的等级加载机制。

  • 将class字节码重新解析成JVM统一要求的对象格式。

mybatis--整体架构

mybatis整体架构分为三层,分别是基础支持层、核心处理层和接口层。

2016年总结

2016年12月17号晚21点25分,儿子睡了,开始总结2016年的往事种种。

机器学习之逻辑回归

最近都在学习逻辑回归,看了不少博客的文章,有详细的,有直接上来就是贴公式的,很暴力。

不管怎样,还是要感谢博主们贡献出来的文章,也从中收获了不少。

自己学习后,把自己理解的整理归纳下,所以有了这篇文章,希望能帮助到正在学习逻辑回归的同学吧。

快学scala笔记——对象

第七篇,对象

性能调优-cpu消耗分析

通常性能瓶颈的表现是资源消耗过多、外部处理系统的性能不足,或者资源消耗不多,但程序的响应速度却达不到要求。

资源主要消耗在cpu,io(又分文件io和网络io),内存方面,机器的资源是有限的,当某资源消耗过多时,通常会造成系统的响应速度变慢。

对于java应用而言,寻找性能瓶颈的方法通常为首先分析资源的消耗,然后结合java的一些工具来查找程序中造成资源消耗过多的代码。

今天先谈一谈cpu消耗如何分析,系统为linux,jdk为sun jdk。

快学scala笔记——类

第六篇,类

快学scala笔记——映射和元组

第五篇,映射和元组

快学scala笔记——数组相关操作

第四篇,数组相关操作

快学scala笔记——控制结构和函数下篇

第三篇,控制结构和函数下篇

快学scala笔记——控制结构和函数上篇

第二篇,控制结构和函数上篇

快学scala笔记——基础

去年,就开始断断续续看scala了,选择了快学scala这本书,当然最全面的肯定是Programming In Scala这本,但觉得不合适入门,可以用于后期提高.

学新东西,一定要去实际使用,然而去年并没有实际scala项目的实战,16年初有幸可以实战了,但发现去年看了后,很多东西都忘记了,当要用了才去翻资料, 上网查询.俗话说的话,好记性不如烂笔头,那就记录并且巩固下吧.

Java注解全面解析

注解解析,包含基本语法,注解元素,快捷方式和JDK1.8注解增强的说明。

2015年总结

12月30号了,时间就像沙子一样从手掌中流逝,每次做总结的时候,都觉得时间过的真快。

maven的java版本随jenv切换改变而改变

在项目中使用的还是java1.7比较多,1.8平时业余项学习使用,毕竟新版本始终会代替旧版本的.在mac上推荐使用jenv工具来管理多java版本, 能够随意切换。

基于play-scala的sbt目录和ivy仓库设置

花了一下午时间,总算全部搞定。时间主要都花费在下载jar包上,虽然开了VPN还是下载慢,没有VPN的话,真心要奔溃的。这期间有太多坑了,所以写这篇文章, 一是记录下,二是方便大家查阅。

大型网站之分布式会话管理

随着网站的功能和用户越来越多,单机器服务部署的Web应用已经不能再支持了。这时候就需要优化或调整目前的架构,具体怎么优化,或先优化哪部分,这取决于网站的具体情况, 并非总是一个套路。

SharedPreference.Editor中commit和apply区别

业余时间瞎学Android有段时间了,至今还没写过文章,可能是我懒吧(其实就是懒- -),今天在练习项目的时候,被IDEA一个warning弄懵了,看下图:

commit-warning

Maven引入本地jar包并生成jar包运行修改MANIFEST.MF文件

由于项目需要发送短信的功能,确定了需求后,开始开发,发现第三方提供的jar没有maven坐标。于是就开启了一系列的坑爹之路,最后还是解决了,纪录下。

String中的无意识递归

我们知道在Java在所有类的父类是Object,容器自然也不例外。因此容器都有toString()方法,并且覆写了该方法,使容器生成的String结果能够表达容器自身,以及容器所有包含的对象。例如ArrayList的toString()方法,它会遍历ArrayList中包含的所有对象,调用每个对象的toString()方法。

Spring注解@Primary

Spring中@Primary注解使用。

Spring的@PropertySource和@Value注解例子

在这篇文章中,我们会利用Spring的@PropertySource@Value两个注解从配置文件properties中读取值,以及如何从配置文件中的值转换为List对象。

用maven骨架生成项目速度慢的问题

用IDEA创建maven project(使用了archetype),速度慢的令人不敢相信,记录下如何解决的。

用Java生成ASCII艺术字

这是一个有趣的java列子,先来看下效果吧:

                          $$$$    $$$$                  $$$$                                        
                          $$$$    $$$$                  $$$$                                        
                          $$$$    $$$$                  $$$$                                        
                                             $$$                                       $$           
           $$$$$$$$$$$$   $$$$    $$$$    $$$$$$$$$     $$$$    $$$$    $$$$    $$$$ $$$$$$         
           $$$$$$$$$$$$   $$$$    $$$$    $$$$$$$$$$    $$$$    $$$$    $$$$    $$$$$$$$$$$$        
           $$$$$$$$$$$$   $$$$    $$$$    $$$$$$$$$$    $$$$    $$$$    $$$$    $$$$$$$$$$$$        
                 $$$$$$   $$$$    $$$$    $     $$$$    $$$$    $$$$    $$$$    $$$$$$ $$$$$        
                $$$$$$    $$$$    $$$$          $$$$    $$$$    $$$$    $$$$    $$$$$   $$$$        
               $$$$$$     $$$$    $$$$     $$$$$$$$$    $$$$    $$$$    $$$$    $$$$    $$$$        
              $$$$$$      $$$$    $$$$    $$$$$$$$$$    $$$$    $$$$    $$$$    $$$$    $$$$        
             $$$$$$       $$$$    $$$$   $$$$$$$$$$$    $$$$    $$$$    $$$$    $$$$    $$$$        
            $$$$$$        $$$$    $$$$   $$$$   $$$$    $$$$    $$$$   $$$$$    $$$$    $$$$        
            $$$$$         $$$$    $$$$  $$$$$   $$$$    $$$$    $$$$  $$$$$$    $$$$    $$$$        
           $$$$$$$$$$$$   $$$$    $$$$   $$$$$$$$$$$$   $$$$    $$$$$$$$$$$$    $$$$    $$$$        
           $$$$$$$$$$$$   $$$$    $$$$   $$$$$$$$$$$$$  $$$$    $$$$$$$$$$$$    $$$$    $$$$        
           $$$$$$$$$$$$   $$$$    $$$$   $$$$$$$ $$$$$  $$$$    $$$$$$$ $$$$    $$$$    $$$$        
                          $$$$             $$$    $$$   $$$$      $$$                               
                          $$$$                          $$$$                                        
                     $$$$$$$$$                     $$$$$$$$$                                        
                     $$$$$$$$                      $$$$$$$$                                         
                     $$$$$$$                       $$$$$$$                                          

优化Jekyll博客访问慢的问题

博客运行一个多月了,各方面都很满意。唯独国内访问网站速度很慢。

Java字符串转枚举类型

如下代码有个枚举类,怎样才能将字符串“arin”转成WhoisRIR.ARIN枚举类呢?

Java的final关键字

编程语言都有某种方法,来向编译器告知一块数据是恒定不变的。有时数据的恒定不变是很有用的,比如:

  1. 一个永不改变的编译时常量。
  2. 一个在运行时被初始化的值,而你不希望它被改变。

Java构造器和枚举的初始化

最近读完了ThinkInJava的第5章初始化与清理,在这里做下简单的总结,以加深影响。

this的由来和正确的使用方式

this关键字在java中,通常都是指“这个对象”或者“当前对象”的含义,它本身表示对当前对象的引用。

2014年总结

现在是2014年12月31号23:12,一晃就年底了,在这里做下总结和明年的目标。

Java中的静态绑定和动态绑定

一个Java程序的执行要经过编译和执行(解释)这两个步骤,同时Java又是面向对象的编程语言。当子类和父类存在同一个方法,子类重写了父类的方法,程序在运行时调用方法是调用父类的方法还是子类的重写方法呢,这应该是我们在初学Java时遇到的问题。这里首先我们将确定这种调用何种方法实现或者变量的操作叫做绑定。

Syntax Highlighting Post

Demo post displaying the various ways of highlighting code in Markdown.

Sample Post

Just about everything you'll need to style in the theme: headings, paragraphs, blockquotes, tables, code blocks, and more.

Sample Post feature image Photo Credit: thomas shellberg