##第一章 JAVA简介##

  • 1.什么是java
  • java语言于1995年Sun公司推出。
  • java程序代码经过编译(编译器完成)后转换成一种成为字节码的中间语言;
  • java虚拟机(JVM)将对字节码进行解释和运行,编译只进行一次,而解释在每次程序运行时都会进行。
  • 2.Java的版本
  • Java SE:Java的标准版本,是Java的基础,包含了Java语言的基础、JDBC操作、I/O、网络通信、多线程等技术,主要用于桌面应用程序的开发。
  • Java EE:Java的企业版,主要用于开发企业级分布式的网络程序,如电子商务网站等。
  • Java ME:Java的迷你版本,主要用于嵌入式系统开发。
  • 3.Java语言的特性
  • 简单:
    语法规则和C++类似;用接口替代了多重继承,取消了指针,实现了垃圾自动回收机制;提供了丰富的类库和API文档,还有大量的基于Java的开源项目。
  • 面向对象:
    面向对象是Java语言的基础,Java语言最外部的数据内型是对象,所有的元素都要通过类和对象来访问。
  • 分布性:
    Java的分布性包括操作分布和数据分布,操作分布是指在多个不同的主机上布置相关操作,而数据分布是将数据分别放在多个不同的主机上。
    其他的特点包括:可移植性、安全性、解释型、健壮性、多线程、动态等。
  • 4.其他一些知识
    搭建Java环境,配置环境变量等

##第二章 JAVA语言基础##

  • 1.基本数据类型
  • 数值型:
  • 整型:包括byte,short,int,long
  • 浮点型:包括float,double
细节:
	八进制数以0开头,十六进制数以0x开头;
	赋给long型的值若大于int(max)或小于int(min),后缀加L
	float需要加后缀F或f。
  • 字符型:char
    细节:单引号引表示字符,双引号表示字符串
  • 布尔型:boolean,只有两个值true和false
  • 2.标识符和关键字
    标识符由下划线、美元符号、数字和字母组成
    关键字是Java语言中被赋予特定意义的一些单词
  • 3.变量和常量
  • 声明常量:final 数据类型 常量名[=值]
  • 变量:
  • 成员变量:在类体中所定义的变量被称为成员变量,成员变量在整个类中都有效。成员变量可以分为静态变量和实例变量。
  • 静态变量的有效范围可以跨越类,甚至在整个应用程序之类。除了能在定义它的类中使用,还可以用“类名.静态变量”的方法在其他类中调用。
  • 4.运算符
  • 赋值运算符:= += -= *= /=
  • 算数运算符:+ - * / ++ – %(取余数)
  • 比较运算符:> < >= <= == !=
  • 逻辑运算符:& | && || !
  • 位运算符:<< >> >>>(无符号右移) ~(按位取反)
  • 三元运算符: ? :
  • 5.数据类型转换
  • 数据类型转换有两种方式,即隐式转换和显示转换。
  • 隐式类型转换:低级类型->高级类型,系统自动执行。byte<short<int<long<float<double
  • 显示类型转换:高精度变量->低精度变量,需使用显示类型转换(强制类型转换)
  • 6.代码注释和规范
  • 单行注释://
  • 多行注释:/* */
  • 文档注释:/** */ 文档注释出现在声明之前时,会被Javadoc文档工具读取作为Javadoc文档内容

##第三章 流程控制##

  • 1,条件语句
    if(表达式){
    若干语句
    }
if(表达式){
	若干语句
}else {
	若干语句
}

if(表达式){
	若干语句
}else if(表达式){
	若干语句
}
...
else{		//这条语句可以没有
	若干语句
}

switch多分支语句
swith(){
	case 常量1;
		若干语句;
		break;
	case 常量2;
		若干语句;
		break;
	...
	default;
		若干语句;
		break;
}//表达式和常量的值必须为整型、字符型、或字符串类型
  • 2,循环语句
    while(表达式){
    执行语句;
    }
do{
	执行语句;
}while(表达式)

for(表达式1;表达式2;表达式3){
	语句序列;
}

//foreach语句是for语句的特殊简化版
for(元素变量x:遍历对象obj){
	引用了x的java语句;
}

break(跳出循环)和continue(跳出当前循环,进入下一个循环)

##第四章 数组##

  • 1,数组定义
    数组是具有相同数据类型的一组数据的集合。Java中将数组看做一个对象。
  • 2,一维数组
  • 声明一维数组的方式:
    数组元素类型 数组名称[];
    数组元素类型[] 数组名称;
    以上只是给出了数组的名字和元素的数据类型,要想正真使用数组,需要为它分配内存空间,
    数组名字=new 数组元素类型[数组元素个数];//使用new关键字分配数组时,需指定元素类型和数组元素的个数。
    声明数组的同时为其分配内存空间:
    数组元素类型 数组名=new 数组元素类型[数组元素个数];
  • 初始化数组:包括两种形式,例
  • int[] arr=new int[]{1,2,3,4,5};
  • int[] arr2={11,12,13,14};
  • 3,二维数组的创建及使用
  • 声明二维数组:
  • 数组元素类型 数组名字[][];
  • 数组元素类型[][] 数组名字;
  • 为数组分配内存:
    直接为每一维分配内存,例
    a=new int[2][4];
    分别为每一维分配内存,例
    a=new int[2][];
    a[0]=new int[2];
    a[1]=new int[3];
    声明的同时为数组分配内存。
  • 二维数组的初始化:
    type arrayname[][]={value1,value2,…,valuen};
    实例:int arr[][]={{12,0},{45,10}};
  • 4,数组的基本操作
  • 遍历数组
  • 填充替换数组元素:
    可通过Arrays类的静态方法fill()来实现
    fill(int[] a,int value);
    fill(int[] a,int fromIndex,int toIndex,int value);
  • 数组排序
    主要包括两种排序方法:选择排序和冒泡排序
    可以使用Arrays类的静态方法sort()
    Java中String类数组的排序算法是根据字典顺序排序的,因此数字排在字母前面,大写字母排在小写字母前面。
  • 复制数组
    可以使用Arrays类中静态copyOf()方法和copyOfRange()方法
    - copyOf(arr,int newlength);//复制数组至指定长度,返回新数组
    - copyOfRange(arr,int formIndex,int toIndex);//将指定数组的指定长度复制到一个新数组中,返回新数组
  • 数组查询
常用二分搜索法(使用前要先对数组排序)来搜索指定数组,对应方法为binarySearch();
binarySearch(Object[] a,Object key);//若包含,则返回搜索值得索引;否则返回-1或“-”(插入点)
binarySearch(Object[] a,int formIndex,int toIndex,Object key);//同上

反转排序
求最大值