环境与工具

url 主要内容 备注
新浪微博新兵训练营课程
研发环境与工具体系介绍
环境与工具(上)
环境与工具(下)
IBM提供的Java入门视频教程

JDK

安装jdk1.7+,地址:http://java.com/zh_CN/download/faq/develop.xml

安装教程

配置环境变量

  1. JAVA_HOME

  2. CLASS_PATH

  3. Path中添加C:\Program Files\Java\jdk1.7.0_60\bin;C:\Program Files\Java\jre7\bin;

IDE

IDEA

Jetbrains IDEA是一个收费软件,它的社区版是免费的,配合上一些插件完全能满足日常需求。安装好之后第一步是调整快捷键,如果之前习惯了Eclipse的快捷键,IDEA也为你提供了这样的选项;然后设置代码格式,一个团队使用相同的代码风格很重要,否则在合并代码时候会异常痛苦。

注册码激活,http://idea.lanyus.com/;http://idea.iteblog.com/

  • 下载代码格式化配置文件

安装eclipse code formatter,否则格式化结果会跟eclipse不一致

  • 下载插件

preferences -> plugins -> Browse repositories -> eclipse code formatter

preference->eclipse code formatter->use the eclipse code formatter->browse

选择codestyle_eclipse.xml,确定

格式化已有文件:选择需要格式化的文件,使用快捷键option+command+L格式化代码

注意: idea格式化时谨慎选择“Optimize imports”和“Arrange Entries”,有可能出现不知名错误

  • 格式说明

使用4个空格代替tab
每行140个字符
更多格式说明可以参考google javastyle

  • 方便开发的插件
  1. .ignore

  2. Maven Helper

  3. Awesome Console

Java开发必装的IntelliJ IDEA插件

  • IntelliJ IDEA官方文档

quick-start-guide

常用快捷键

Ctrl+Alt+NumPad-/+ 折叠和收起代码

idea操作使用教程

Maven

安装maven,地址:https://maven.apache.org

maven教程

配置环境变量

Path变量中添加maven的bin路径

Maven依赖

View->Tool Windows->Maven Projects->Dependencies

Reimport All Maven Projects

配置Tomcat

如何在IntelliJ IDEA中快速配置Tomcat

常见问题

  1. maven导入项目后,依赖库引用报错,解决方案:执行mvn idea:idea命令

Java语言

Tutorial

《The Java™ Tutorials 》集中体现了Tutorial类型的资料的特点。它从最开始的编译和运行环境搭建说起,教你写出第一个Hello World,再用介绍的方式将Java各种语言特性(变量、类、泛型、Lambda表达式、JavaBeans,等等)进行讲解,同时还有对于JDK里常用API(集合类、多线程、IO等等)的介绍。

对初学者而言,需要的就是这样一份资料。即使你手头没有任何Java的入门书籍,读完这样的一份资料之后,一个新手基本就可以开始使用Java来编程了。

The Java Web Tutorials

Spec

《The Java® Language Specification》是一份很典型的Spec,完备而规范。任何讲Java语法的资料,包括各种书籍和前面提到的Tutorial,都只能涉及部分。而这份Spec,如果你能读通的话,那么与Java语言特性有关的所有一切,你就再也不用求人了。

API

JDK 8 的API Reference,用Java语言编程的时候,我们需要不断查阅的就是这份API Reference。我们平常一般是通过IDE来快速查看某个接口的文档说明。

入门教程

  1. 金旭亮的Java课程

框架及类库

设计模式

架构

调优

mat

Java内存分析工具

  1. //获取dump文件
  2. jmap -dump:format=b,file=manageplatform-hb.dump 8188
  1. 下载mat单机版

  2. 分析内存占用情况

  3. 官方文档

  4. 项目首页

Garbage Collections Roots (GC roots)

https://dzone.com/articles/dynamic-class-enhancement-with-cglib

相关概念

英文 中文 说明
heap dump Java进程内存使用快照 包含堆中的对象和类信息,不包含内存分配信息,所有对象、类、Garbage Collection Roots、Thread Stacks and Local Variables
Shallow Heap 浅层堆 该对象实际占用的堆大小
Retained Heap 保留堆 一般会大于或者等于shallow heap,如果这个对象被删除了(GC回收掉),能节省出多少内存,这个值就是所谓的retained heap
Dominator Tree 支配树

参考:

  1. shallow heap vs retained heap