Java编程零基础快速入门教程索引

Java入门到精通


1.Java教程概述
java零起点编程教程.精心挑选了java中含金量高的知识点.
2.搭建Java开发环境
Window安装JDK图文教程.windows搭建java开发环境,配置java环境变量图文教程.
3.第一个Java程序
java程序HelloWord起源,入口方法main方法介绍.java与javac命令介绍
4.Java代码注释
代码注释也叫做注解,分为单行注释和多行注释.注释只需要人来读懂而计算机不执行.
5.Java变量
java变量分为基础类型变量和引用类型变量,数字类型变量,布尔(boolean)变量,字符串类型变量及变量作用域
6.Java集成开发环境
java常用文本编辑工具及Java集成开发环境Intelij IDEA的安装步骤.Intelij IDEA配置主题,导入java项目.
7.Java运算符
java算术运算符,复合运算符,关系运算符,条件运算符,逻辑运算符,自增/减运算符,运算符优先级
8.Java方法
java方法的定义.方法修饰符,静态方法static,方法返回值类型,方法命名规则,方法参数,return关键字.
9.Java流程控制
java分支语句if-else,跳转语句switch,循环语句for,while,do-while.continue,break关键字.死循环的介绍.
10.Java命名空间
java对象概念,class,this, package,import关键字.java命名空间介绍.
11.Java数组
java数组是同一种类型数据,固定长度的集合.数组初始化,数组默认值.for循环及增强for循环遍历数组.
12.Java静态变量与常量
java语言中static变量修饰的成员变量和成员方法称为静态变量和静态方法.静态变量与实例变量区别,静态变量应用场景.final关键字.
13.Java对象
java面向对象编程的三大特点:封装,继承和多态.方法参数的值传递与引用传递.抽象方法与抽象类,接口.对象实例类型判断.this,super关键字.值传递与引用传递.
14.Java包装类
java包装类也翻译为外覆类或数据类型类.包装类对应表,包装类用法,自动装包/拆包.
15.Java集合类
java常用集合类接口:Collection,List,Set,Queue,Map介绍.HashMap,HashSet,LinkList,ArrayList,Vector等集合类的遍历.
16.Java异常
Java异常机制及java异常框架介绍.抛出/捕获异常,自定义异常.throw,try,catch,finally关键字.
17.Java位运算
2进制与16进制,移位运算符,位运算是通过二进制计算的方式来改变数据.位运算符可以分为逻辑运算符(包括~,&,|和^)及移位运算符(包括>>,<<和>>>).位运算符的优先级.
18.Java转义字符
java转义字符介绍.Unicode转义字符,转义字符表
19.Java线程
java线程介绍,启动线程,线程的状态,线程阻塞与线程死锁.synchronized关键字用法.Lock对象实现线程同步.
20.Java设计模式
java设计模式分为:工厂模式,抽象工厂模式,单例模式,建造者模式,原型模式,适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式,策略模式,模板方法模式,观察者模式,迭代子模式,责任链模式,命令模式,备忘录模式,状态模式,访问者模式,中介者模式,解释器模式.
21.Java编码优化
java编码规范的目的是写出更优雅高效简介的代码.列举了一些示例来说明java如何写出优雅的代码.
22.jvm参数优化
jvm参数标准配置选项.jvm参数非标准配置选项.jvm参数性能优化示例.jvm参数建议配置.
23.final关键字作用详解
在java中final关键字有第一无二的特性,就是只可以赋值一次,一旦赋值,就无法改变其值。利用好这个特性可以写出非常好的代码。
24.transient关键字详解
我在自己的项目中很少使用transient关键字。这个关键字的作用是和序列化相关的。JDK的源码中ArrayList类用到了transient关键字. 整理一下这个关键字相关的内容.

JDK8新特性


1.JDK8新增语法特性简介
java JDK8新增语法特性:函数接口(Functional Interface),Lambda表达式,方法引用(Method Reference),default方法(defender方法),批量数据操作(bulk dataoperations).
2.JDK8函数式接口
JDK8提供了函数式接口(Functional Interface)是指只有一个抽象方法的接口.这种类型的接口也称为SAM(Single Abstract Method).
3.Java兰姆达(Lambda)表达式
java拉姆达(Lambda)表达式由来.命令式编程与函数式编程.java为什么会引入拉姆达(Lambda)表达式.java Lambda表达式的优点.
4.java拉姆达(Lambda)表达式应用
java拉姆达(Lambda)表达式语法及示例.java拉姆达(Lambda)表达式对集合排序.Java拉姆达表达式在流(stream)式操作中的应用.
5.JDK8的default方法
java从jdk8.0开始提供了default方法.java default方法应用.
6.JDK8方法引用
java方法引用(method references)的概念.java方法引用的种类.静态方法引用,某个对象的方法引用,特定类的任意对象的方法引用.
7.JDK8集合类库的批量数据操作
java并行和串行处理数据介绍.java批量操作接口,java流式(stream)API.中间操作与终结操作.

附录


1.Java中@Override标签作用
java中的@Override是伪代码,表示覆写父类方法.可用于代码检查,验证父类是否有该方法.
2.Java编码规范
java编码规范制定原则.引为了写出高效,优雅的代码制定本规范.
3.Java保留关键字
java保留关键字(reserved word)指在系统已经定义过的英文单词.详细的java保留关键字列表及关键字意义.
4.Linux搭建Java开发环境配置环境变量
linux安装jdk,搭建java开发环境详细步骤.linux,Ubuntu,CentOS配置java环境变量.
5.阿里巴巴Java开发手册
阿里巴巴java开发手册正式版下载.本手册纸质版书籍已经出版,感兴趣的同学可以买一个纸质书籍.

Intelij IDEA


1.IntelliJ IDEA设置xmx和xms
Intelij IDEA在跑大内存的程序时.会出现java.lang.OutOfMemoryError异常,解决办法是设置-Xms和-Xmx参数.
2.IntelliJ IDEA格式化代码目录
Intelij IDEA格式化代码目录方法及格式化代码快捷键.WebStom,Android Studio,JetBrains PyCharm格式化代码目录.

Java中文手册


1.JDK6中文手册
JDK6.0中文手册API在线文档.
2.JDK8英文手册
JDK8中文手册API在线文档.
3.JDK9英文手册
JDK9中文手册API在线文档.

FAQ


1.HashMap与ConcurrentHashMap的区别与应用场景
从JDK1.5开始加入了ConcurrentHashMap,在面试的过程中我问过很多程序员,HashpMap与ConcurrentHashMap的区别是什么呢。我得到的回答一般都是HashpMap不是线程安全的,ConcurrentHashMap是线程安全的。这个结论很笼统。下面我来详细的举例说明他们之间的区别。
2.HashMap中的put和putIfAbsense区别
HashMap集合类中有put()方法,还提供了一个putIfAbsent方法,在项目中一个同事用错putIfAbsent方法,从而导致了一个比较严重的bug。在本文中总结了一下这两个方法的区别与应用场景, 避免用错。
3.java ArrayList原理及转化成数组常用方法
在实际项目中会用根据需求用到ArrayList和数组之间的转换。比如往MongoDB数据库中存入一个整型数组(int[]),读取的时候可以得到一个ArrayList,无法直接得到一个整型数组(int[]).这个时候就会需要用到ArrayList转化为数组.
4.ConcurrentModifyException的产生原因及如何避免
在我做的一个模块中,会用到遍历一个集合类,遍历的同时根据条件判断集合中的对象,如果不符合条件则将该对象从集合中移除。这种情况很容易产生ConcurrentModificationExceptionException,这个异常会导致程序停止继续运行,所以遇到这个异常必须要处理来保证程序正确运行。
5.Java随机数Random类
随机数Random类是在做随机规则时需要用到的类。用途很广,比如随机抽奖,随机密码,随机验证码,随机奖励等,随机数,计算概率等。

程序优化专题


1.for循环中的效率优化
在编码中,我们像竞技运动员一样追求更快的速度。追求最优的算法,看到一些同学的编码质量停留着实现功能的层面,距离最优编码相差很远。所以一直想整理一下自己在实际项目遇到的问题和效率优化的文章和大家分享一下。本文是该系列文章的第一篇。for循环的效率优化。
2.java数组拷贝的3种方式和效率对比
Java语言中常用的数组拷贝方式有:for循环拷贝,通过Arrays.copyOf()方法,System.arraycopy和clone()方法拷贝。
3.java浮点数运算和整数型运算的效率比较
部分程序员对应浮点数(float,double)做运算的时候,会有一个误区就是浮点数运算效率比整型运算效率低很多。产生这个认识的原因是因为以人的角度来考虑这个问题,做小数除法要比做整数除法麻烦一些而得出的。通过实际代码来比较一下这差异。
4.3目运算符效率优化
3目运算符也称条件运算符。根据条件true或者false,选择对应的值。在使用3目运算符的优势是代码简介,将一个if-else语句简化为了一行代码。效率略低于if-else语句。

你可能感兴趣的:(java基础教程)