
一、Java语言初识
了解Java语言
MarkDown语法
简单的dos命令
JDK-开发者工具包 ,配置环境变量
JRE-运行环境
二、HelloWorld
dos命令运行-javac hello.java,java hello
三、基础语法
注释-行内注释(//)多行注释(/* /)文档注释(/* /)
标识符-关键字
数据类型【
1.基本数据类型
整数 byte(1)short(2)int默认(4)long(8)
浮点数 float(4)double 默认(8)
字符 char(2)
布尔 boolean(1)
2.引用数据类型
类
接口
数组】
类型转换-自动该类型转换(低转高)、强制类型转换(高转低-(低)高)
变量和常量【
数据类型 变量名(=值)
作用域-类变量、实例变量、局部变量
常量- final 常量名=值
命名规范-洁简、驼峰命名、常量尽量只用大写】
运算符[
1.算术运算符:+、-、、/、%、++、–
2.赋值运算符: =
3.关系运算符:>、<、>=、<=、==、!=、instance of
4.逻辑运算符:&&、||、!
5.位运算符:&、|、^、~、>>、<<、>>>
6.条件运算符:?:
7.扩展运算符:+=、-=、*=\、/= ]
包机制:防止命名冲突、package(第一行)、import
javaDoc【
jdk帮助文档
javadoc -encoding 编码 -charset 编码 文件名.java 就可生成网页java帮助文档,在代码中用文档注释符编写帮助信息,包括@author 作者信息
@version版本@since最早支持版本@param参数,例如args@return返回值@throws异常】
三、流程控制
Scanner 用户交互system.in,接受用户输入
顺序结构:程序默认的结构,自上而下的执行
选择结构【
1.if单选择结构
2.if-else 多选择结构
3.if-else if-else多选择结构
4.switch(jdk支持了String类型、case穿透现象、break、default)】
循环结构【
1.while先判断再循环
2.do…while先循环再判断
3.for for(初始值;循环条件;循环变量改变)
4.增强for循环】
break、continue【
break:跳出循环
continue:终止当次循环
带标签的continue
return:结束方法的运行,用在main方法中直接退出程序】
四、方法
方法的定义:修饰符 返回值 方法名(参数名){return 返回值;若类型为void则可以不要return}
方法的调用:类名.方法名、对象.方法名
方法重载:名字相同参数列表不同
命令行传参:

可变长参数:必须放在最后一个参数
递归:自己调用自己,给自己一个出口
五、数组
数组的定义:数组类型[]数组名=new 数据类型[数组长度] 或 数组类型[]数组名=new 数据类型[]{元素1….}或
数据类型[]数组名;数组名=new 数据类型[数组长度] 数组中的数据必须为同类型
数组的使用:通过下标取值,用for循环遍历
二维数组:声明时用[][]
Arrays工具类 :Arrays.方法名(数组名) 常用方法包括(toString将元素转换为字符串输出,多维数组用deepToString、sort对数组进行升序排序并替代原有数组、binarySearch对数组进行二分查找Arrays.binarySearch(数组名,查找值)最好是排序后查找否则可能不靠谱、fill将数组中的所有元素设为同一个值、copyOf复制一个数组的所有内容并创建一个新的数组、equals比较两个数组内容是否相同)
排序算法:冒泡排序、快速排序……
六、面向对象
类与对象: 类是对象的抽象(模板),对象是类的具体
new对象:栈存放引用,堆存放具体的对象
封装:属性私有,提供get、set方法
继承:子类extends父类,java是单继承一个子类只能继承一个父类,object是所有类的父类,子类拥有父类的所有特性,方法重写(方法重写中方法名、返回类型、参数子类必须与父类一样
子类方法不能缩小父类的访问权限,向上转型和向下转型时调用方法只能调用编泽类型和运行类型共有的,不能调用运行特有的,先从运行开始找)
属性输出看编译类型,方法调用看运行类型
动态绑定机制【若子类中没找到此方法,则在父类中查找,若在父类的方法中有调用其他方法的语句则调用运行类型中的,有调用属性的则采用哪里声明哪里使用】
this、super
多态:父类的引用指向子类的对象(Person person=new Student())、instance of
修饰符:public、private、static、protected、final、abstract
接口:interface声明,只能定义方法名,子类实现接口必须重写其中的方法,接口比抽象类更抽象,一个类可以实现多个接口
集合框架
可分为collection接口和map接口两大类
collection用以存储单一元素的容器,是单列集合的根接口,主要有三大分支:List、set、Queue/Deque
List:元素有序,可重复、可通过索引访问 常用实现类有Arraylist,Arraylist基于动态数组实现,增删中间元素慢(删除中间元素则后面元素往前移一位)、
Linkedlist、Linkedlist基于双向链表实现插入删除块(随机访问慢,需要从头遍历)、 Vector线程安全版的动态数组(已较少使用)、Stack继承自Vector,是后进先出栈
Set:元素无重复,部分无序部分有序。常用实现类有Hashset,Hashset基于Hashmap实现,元素无序、Linkhashset,Linkhashset基于Linkhashmap实现,保持插入顺序(输出时有序输出)、Treeset,Treeset基于Treemap(红黑树)实现,元素按自然顺序(升序)或比较器排序(自定义)
Queue/Deque(队列/双端队列):遵循先进先出(FIFO)或双端操作规则。常用实现类有Priortyqueue,Priortyqueue是基于堆实现的优先队列,按优先级出队(调用输出语句后默认输出最小值,也可自定义构造器)、Arraydeque,Arraydeque是基于循环数组实现的双端队列,高效无容量限制
Map:是双列集合的根接口,存储key-value键值对。常用实现类有Hashmap,Hashmap是基于哈希表的,元素无序,jdk1.8起引入红黑树优化链表性能、Linkedhashmap,Linkedhashmap是基于哈希表+双向链表实现的,保持插入顺序和访问顺序(有序输出)、Treemap,Treemap是基于红黑树实现的,按key排序输出、Hshtable,Hshtable是线程安全的哈希表(已较少使用)、Concurrenthashmap,Concurrenthashmap是高性能线程安全哈希表,支持并发访问
文章摘自:https://www.cnblogs.com/liu66614/p/19854694
