一、计算机基础&Java背景
1、计算机硬件
● 硬盘:计算机永久存储数据的载体,所有计算机所要使用的信息都存储在这里
● 内存:计算机暂时存储数据的载体,主要负责将数据从硬盘中传输到CPU中,平衡速率差
● CPU:计算机的核心,大脑,主要处理单元,所有的信息都由CPU进行运算得出结果
2、内存如何存储数据
不同类型的数据进行存储要提前进行数据分类,内存要确保自己存储的信息能够被认知。然后将数据转换为二进制,只有0和1的数据形式,因为内存中存储数据的方式是通过内存中元器件的通电与断电状态来存储的。
3、Java语言背景
● Java是美国Sun公司(Stanford University Network) 在1995年推出的一门计算机高级编程语言。
● Java早期成为Oak(橡树),后期改名为Java。
● Java之父:詹姆斯·高斯林(James Gosling)。
● 2009年Sun公司被Oracle公司收购
3、Java平台版本
● JavaSE标准版:Java技术的核心和继承
● JavaEE企业版:企业级应用开发的一套解决方案
● JavaME小型版:针对移动设备应用的解决方案
4、Java语言的优点
● 简单性
● 安全性
● 解释性
● 健壮性
● 面向对象
● 高性能
● 多线程
● 分布式
● 开源
● 跨平台
5、Java跨平台
6、JDK JVM JRE
● JDK (Java Developme Kit):Java开发者工具包
JDK是提供给Java开发人员使用的,其中包含了Java的开发工具,也包括了JRE,所以安装了JDK,就不用再单独安装JRE了
● JVM(Java Virtual Machine): Java虚拟机
JVM是一种用于计算设备的规范,它是一个虚拟构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的
● JRE(Java Runtime Environment): Java运行环境
包括Java虚拟机和Java程序所需要的核心类库等,如果想要运行一个开发好的Java程序,必须安装JRE环境
7、第一个程序—Hello World
public class HelloWorld {
public static void main(String[] args) {
System.out.println(“Hello World!”);
}
}
二、数据类型和变量
1、Java数据类型
2、Java内存应用
堆: 堆是动态数据存储空间,当需要空间时进行申请,用完后归还空间。使用规则:先进先出。
栈:栈是一种对堆的使用方法,主要用它来存储Java的标识符,也就是给放在堆里的数据做个标志,让我们能通过栈更快速的定位到数据在堆的位置。使用规则:先进后出。
3、声明变量(内存中步骤)
- 声明:由于堆的特性,使用内存时需要先向内存堆申请一块空间,这块空间的申请必须注明数据类型。标识:需要定义一个标识符,表示通过这个标识符去寻找这块空间。赋值:内存堆的使用必须有意义,无效的内存堆空间(null)是一种浪费,不被内存所认可。使用:通过标识符来使用。
4、标识符命名规范
硬性规范:
- 只能用英文、下划线、数字、$结尾只能用英文、下划线、$开头不能用关键字命名
软性规范:
- 见名知意使用小驼峰命名法虽然可以但一般不用_和$
5、数据类型转换
自动转换
由小到大:byte char类型和short类型都需要强制转换 char类型和int类型为自动转换 强制转换 ● 大转小 ● String转int 三、运算符 1、算数运算符 加法:相加运算符两侧的值
减法:左操作数减去右操作数
乘法:相乘操作符两侧的值 检查左操作数是否大于右操作数,如果大于则结果为真 4、赋值运算符 操作符 描述 5、三目运算符(三元) 条件表达式 ? 结果1 : 结果2 ; 四、流程控制结构 1、顺序结构 //开始 2、选择结构 if结构 if(表达式) { } if_else结构 if(表达式) { } else { } switch_case结构 switch(表达式){ 3、循环结构 for循环 可预知循环次数 for(变量;条件;迭代(步进语句)) { } while循环 while( 布尔表达式 ) { do while循环 do { }while(条件) { } 五、数组 1、什么是数组 2、数组声明格式 ● 动态初始化 ● 静态初始化: 数据类型[] 数组名称 = new 数据类型[]{数据1,数据2,……,数据n} 数据类型[] 数组名称 = {数据1,数据2,……,数据n} 3、数组遍历 ● for循环遍历 4、多维数组 (1)什么是多维数组 数据类型[][] 数组名称 = { int[][] arrays = { for (int i = 0; i < arrays.length; i++ ) { 5、冒泡排序 六、方法 1、什么是方法 Java方法是语句的集合,它们在一起执行一个功能。 2、方法的优点 ● 使程序变得更简短而清晰。 3、方法的定义 } ● 返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。 ● 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。 ● 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。 ● 方法体:方法体包含具体的语句,定义该方法的功能。 4、方法调用 ○ 直接调用 ○ 赋值调用 如果有两个方法的方法名相同,但参数不一致,那么可以说一个方法是另一个方法的重载,具体说明如下:
int num1 = 1;
byte num2 = (byte) num1;
String s=“100”;
Integer i=Integer.valueOf(s);
int x=i.intValue();
操作符 描述
/ 除法:左侧操作数除以右侧操作数
% 取余:左操作数除以右操作数的余数
++ 自增运算:操作数的值加一
– 自减运算:操作数的值减一
关于 ++a 和 a++ 的区别( – a 和 a – 同理 ):
++a是直接将a的值加一,a++是先使用变量a目前的值,然后再将a的值加一
int a = 1;
++a; //++a 等于 2
int b = 1;
b++; // b++ 等于 1;
2、比较运算符
操作符 描述
== 检查两个操作数的值是否相等,如果相等则结果为真
!= 检查两个操作数的值是否不相等,如果不相等则结果为真
< 检查左操作数是否小于右操作数,如果小于则结果为真
= 检查左操作数是否大于或等于右操作数,如果大于或等于则结果为真
<= 检查左操作数是否小于或等于右操作数,如果小于或等于则结果为真
3、逻辑运算符
操作符 描述
&& 全真为真,有假即假
|| 全假为假,有真即真
! 逻辑非运算符,取反
= 简单的赋值运算符,将右操作数的值赋给左侧操作数
+= 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数
…… ……
//语句1;
//……
//语句n;
//结束
case 常量1:语句;
case 常量……:语句;
case 常量n:语句;
default : 语句;
}
//循环内容
}
数组,是有序的元素序列,用于储存多个相同类型数据的集合,数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。这些无序排列的同类数据元素的集合称为数组。
数据类型[] 数组名称 = new 数据类型[数组长度];
int[] array = new int[10];
int[] array = new int[]{1,2,3,4,5};
int[] array = {1,2,3,4,5};
int[] array = {1,2,3,4,5};
for(int i = 0; i < array.length; i++) {
System.out.println(array[i];
}
● for-each遍历
int[] array = {1,2,3,4,5};
for(int i : array) {
System.out.println(i);
}
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组,例如:
int[][] array = new int[2][2];
(2)多维数组初始化
● 动态初始化
数据类型[][] 数组名称 = new 数据类型下[行数][列数];
int[][] array = new int[2][3]; //两行三列
int[][] array = new int[2][]; //初始化时列数可省略
● 静态初始化
数据类型[][] 数组名称 = new 数据类型[][] {
{数据1,……,数据n},
{……}
}
{数据1,……,数据n},
{……}
}
{1,2,3},
{4,5,6}
}
(3)多维数组遍历
int[][] arrays = {
{1,2,3,4,5},
{6,7,8,9,10},
{11,12,13,14,15}
}
for (int j = 0; j < arrays[i].length; j++ ) {
System.out.println(arrays[i][j];
}
}
int[] arrays = {8,4,2,5,1};
int temp = 0;
for(int i = 0; i < arrays.length; i ++ ) {
for(int j = 0; j < arrays.length - 1 - i; j ++ ) {
if(arrays[j] > arrays[j+1];
temp = arrays[j];
arrays[j] = arrays[j+1];
arrays[j+1] = temp;
}
}
○ 方法是解决一类问题的步骤的有序组合
○ 方法包含于类或对象中
○ 方法在程序中被创建,在其他地方被引用
● 有利于程序维护。
● 可以提高程序开发的效率。
● 提高了代码的重用性。
修饰符 返回值类型 方法名(参数类型 参数名){方法体
return 返回值;
● 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
方法名称(参数);
max(10,20);
方法返回值类型 变量名称 = 方法名称(参数);
int a = max(10,20);
○ 打印调用
System.out.println(max(10,20));
5、方法的重载
○ 方法名相同
○ 方法的参数类型,参数个不一样
○ 方法的返回类型可以不相同
○ 方法的修饰符可以不相同
○ main 方法也可以被重载



