一、java语法基础:
1.关键字:赋予某种特殊含义的单词
保留字:还未赋予特殊含义,准备未来使用的关键字
2.标识符:是指java中的包、类、方法、变量名、参数的名字
组成:由字母、数字、下划线、美元($)组成,但不能以数字开头以及不能使用关键字;
3.常量:程序中不变的数据;
4.变量:是指在内存中的存储空间,用于存放常量数据;
作用:方便计算
特点:变量空间可以重复使用
变量的作用域和生存期
作用域:
所在的大括号内;
生存周期:
定义是存在,所在作用域结束时结束
5.数据类型
1)、基本类型(长度递增):boolean、char、byte、short、int 、long 、float、double
2)、引用类型:数组、类、接口
级别:byte-char-short(平级)--> int --> long --> double
6.运算符
1)、算数运算符
+ - * / %
2)、赋值运算符
= += -= /= %=
3)、比较运算符(结果为:true/false)
> < == != >= <=
4)、逻辑运算符
& | ^ ! && ||
^ 两边结果一样是 返回 true
两边结果不一样 返回 false
5)、位运算符
7.语句:if switch do while while for
1)、switch(n){
case 1: dosomething();break;
case 2: dosomething();break;
default:dosomething;//默认执行的语句
}
n的类型:byte、char、short、int
2)、判断数据范围是用 if(boolean)
3)、当某语句需要执行很多次时用循环
4)、break 再循环语句中 用于跳出或者接受循环
5)、continue 是指跳出当前循环,进入下一个循环
8.函数:
作用:
(1)、用于定义动能
(2)、用于封装代码,提高代码的复用性
注意:函数中只能调用函数,不能定义函数
主函数:
(1)、保证该类的独立运行
(2)、程序的入口
(3)、被jvm调用
重载:
在同一类中,出现相同函数名但是他们的参数个数或者类型不同则为函数重载与他们的返回值类型是否不同无关
9.数组:
1)、元素类型[] 变量名= new 元素类型[个数];
2)、元素类型[] 变量名= {元素1,元素2,元素3......};
3)、数组的操作:
System.arrayCopy(source,0,dest,0,x);
复制源数据组从下表0开始的x个元素到目标数组,从目标数组下标0所对应的位置开始存取
4)数组常见的排序算法:
(1)、插入排序(直接插入排序、shell排序)
(2)、交换排序(冒泡排序、快速排序)
(3)、选择排序(直接选择排序、堆排序)
(4)、归并排序
(5)、分配排序(箱排序、基数排序)
所需辅助空间最多的是:归并排序
所需辅助空间最少的是:堆排序
平均速度最快的是: 快速排序
不稳定:快速排序、shell排序、堆排序
eg:冒泡排序和快速排序
冒泡排序(BubbleSort ):
代码:
public class BubbleSort {
//主函数
public static void main(String[] args) {
int [] arrayInt={19,5,64,7,33,36,20,12,46,22,14,74,63,54,16,84,32,13,58,43,15,84};
int [] data=sort(arrayInt);//调用冒泡排序算法
for (int i = 0; i < data.length; i++) {
int j = data[i];
System.out.println(j);
}
}
//冒泡排序算法
public static int[] sort(int[] data){
int temp;
for(int i=0;i<data.length;i++){
for(int j=data.length-1;j>i;j--){
if(data[i]<data[j]){
temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
}
return data;
}
}
java内存:
1.代码区:存放程序方法中的二进制代码,而且是多个对象共享一个代码空间区域
2.栈区:由编译器自动分配释放,存放函数的参数值、局部变量等
3.堆区:有程序员分配释放,存放 new创建的对象和数组
4.静态区:存放全局变量。静态变量、字符创常量,不被释放
10.设计模式:
单例模式:
饿汉式:
class Single{
private Single(){}
private static Single s= new Single();
public static Single getInstance(){
return s;
}
}
懒汉式:
class Single2{
private Single2(){}
private static Single2 s= null;
public static Single2 getInstance(){
if(s==null)
s=new Single2();
return s;
}
}
1.关键字:赋予某种特殊含义的单词
保留字:还未赋予特殊含义,准备未来使用的关键字
2.标识符:是指java中的包、类、方法、变量名、参数的名字
组成:由字母、数字、下划线、美元($)组成,但不能以数字开头以及不能使用关键字;
3.常量:程序中不变的数据;
4.变量:是指在内存中的存储空间,用于存放常量数据;
作用:方便计算
特点:变量空间可以重复使用
变量的作用域和生存期
作用域:
所在的大括号内;
生存周期:
定义是存在,所在作用域结束时结束
5.数据类型
1)、基本类型(长度递增):boolean、char、byte、short、int 、long 、float、double
2)、引用类型:数组、类、接口
级别:byte-char-short(平级)--> int --> long --> double
6.运算符
1)、算数运算符
+ - * / %
2)、赋值运算符
= += -= /= %=
3)、比较运算符(结果为:true/false)
> < == != >= <=
4)、逻辑运算符
& | ^ ! && ||
^ 两边结果一样是 返回 true
两边结果不一样 返回 false
5)、位运算符
7.语句:if switch do while while for
1)、switch(n){
case 1: dosomething();break;
case 2: dosomething();break;
default:dosomething;//默认执行的语句
}
n的类型:byte、char、short、int
2)、判断数据范围是用 if(boolean)
3)、当某语句需要执行很多次时用循环
4)、break 再循环语句中 用于跳出或者接受循环
5)、continue 是指跳出当前循环,进入下一个循环
8.函数:
作用:
(1)、用于定义动能
(2)、用于封装代码,提高代码的复用性
注意:函数中只能调用函数,不能定义函数
主函数:
(1)、保证该类的独立运行
(2)、程序的入口
(3)、被jvm调用
重载:
在同一类中,出现相同函数名但是他们的参数个数或者类型不同则为函数重载与他们的返回值类型是否不同无关
9.数组:
1)、元素类型[] 变量名= new 元素类型[个数];
2)、元素类型[] 变量名= {元素1,元素2,元素3......};
3)、数组的操作:
System.arrayCopy(source,0,dest,0,x);
复制源数据组从下表0开始的x个元素到目标数组,从目标数组下标0所对应的位置开始存取
4)数组常见的排序算法:
(1)、插入排序(直接插入排序、shell排序)
(2)、交换排序(冒泡排序、快速排序)
(3)、选择排序(直接选择排序、堆排序)
(4)、归并排序
(5)、分配排序(箱排序、基数排序)
所需辅助空间最多的是:归并排序
所需辅助空间最少的是:堆排序
平均速度最快的是: 快速排序
不稳定:快速排序、shell排序、堆排序
eg:冒泡排序和快速排序
冒泡排序(BubbleSort ):
代码:
public class BubbleSort {
//主函数
public static void main(String[] args) {
int [] arrayInt={19,5,64,7,33,36,20,12,46,22,14,74,63,54,16,84,32,13,58,43,15,84};
int [] data=sort(arrayInt);//调用冒泡排序算法
for (int i = 0; i < data.length; i++) {
int j = data[i];
System.out.println(j);
}
}
//冒泡排序算法
public static int[] sort(int[] data){
int temp;
for(int i=0;i<data.length;i++){
for(int j=data.length-1;j>i;j--){
if(data[i]<data[j]){
temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
}
return data;
}
}
java内存:
1.代码区:存放程序方法中的二进制代码,而且是多个对象共享一个代码空间区域
2.栈区:由编译器自动分配释放,存放函数的参数值、局部变量等
3.堆区:有程序员分配释放,存放 new创建的对象和数组
4.静态区:存放全局变量。静态变量、字符创常量,不被释放
10.设计模式:
单例模式:
饿汉式:
class Single{
private Single(){}
private static Single s= new Single();
public static Single getInstance(){
return s;
}
}
懒汉式:
class Single2{
private Single2(){}
private static Single2 s= null;
public static Single2 getInstance(){
if(s==null)
s=new Single2();
return s;
}
}