Java入门前言Java基础编程
1语言概述2基本语法
关键字和标识符变量的使用进制运算符输入输出流程控制 3数组
一维数组二维数组 ==4面向对象(上)==
权限修饰符:三条主线:面向过程&面向对象:类&对象对象的内存解析:属性:方法: ==5面向对象(中)====6面向对象(下)== Java高级编程
前言
记录学习的过程
Java基础编程 1语言概述IDE(Integrated Development Environment)=集成开发环境
JDK=JRE+java开发工具(javac.exe,java.exe,javadoc.exe)
JRE=JVM+Java核心类库
常见命令行操作:cd,md,rd,del,cd…,cd/
环境变量:
希望在任何路径下都执行java的开发工具
JAVA_HOME=bin的上一层目录
path=%JAVA_HOME%bin
javac:编译阶段,win命令,大小写无所谓
java:运行阶段,java命令
编译生成的.class结尾的字节码文件不包含注释的信息
文档注释(java特有):可以被javadoc所解析
多行注释不可以嵌套使用
API:应用程序 编程 接口
2基本语法 关键字和标识符关键字:全部小写
标识符规则:大小写字母,0-9,_,$,数字不能开头
标识符的命名规范有哪些?
包名:xxxyyyzzz
类名、接口名:XxxYyyZzz
变量名、方法名:xxxYyyZzz
常量名:XXX_YYY_ZZZ
数据类型:基本&引用
基本数据类型:byte short int long char float double boolean
long类型变量必须以l或L结尾
float类型变量必须以f或F结尾
引用数据类型:类、接口、数组
自动类型提升:表示数范围的大小,小->大
byte、short、char ——int ——long ——float—— double
byte,char,short做运算自动转化为int
强制类型转换:(),可能导致精度损失
String可以和8种基本数据类型做连接运算,结果仍是String类型
字符串比较要用s1.equals(s2),返回值是boolean类型
进制进制表示:二0b,八0,十六0x
计算机底层用补码方式存储数据
运算符取余运算:结果的符号与被模数的符号相同
自增自减,+=,-=不会改变本身变量的数据类型
赋值运算符:支持连续赋值
||与&&:要考虑短路
位运算符:操作整型,<<×2,>>÷2
Scanner s=new Scanner(System.in)
字符串next——字符char=s.chatAt(0),
整型nextInt,浮点型nextDouble,
随机数:double a=Math.random()
范围[0.0,1.0)
包含:顺序,分支,循环
switch-case
switch的表达式不可以是boolean类型和浮点类型
case后面必须是常量
break&continue
break:switch-case 和 循环结构(结束当前循环),其后不可以声明执行语句
continue: 循环结构(结束当次循环),其后不可以声明执行语句
for(;;;)循环
分号隔开的每部分可以有多个语句,用,隔开
创建数组对象会开辟一整块空间
同类型数组的赋值 ≈ 电脑创建快捷方式
声明+初始化:
int [] a=new int[]{1,2,3,4}; //静态初始化,其中new int[]可省略
int [] a=new int[4]; //动态初始化
数组的长度——arr.length
默认初始化值:
整型 : 0
浮点型:0.0
char:0
boolean :false
引用类型:null
内存的简化结构:
下面是实例
声明+初始化:
int [] a[]=new int[][]{{1,2,3},{4,5},{6,7}}; //静态初始化,其中new int[]可省略
int [][] a=new int[4][3]; //动态初始化,其中列数可以省略
默认初始化值:
初始化一:
外层元素的值:地址值
内层元素的值:与一维数组相同
初始化二:
外层元素的值:null
内层元素的值:不能调用,否则报错。
下面是二维数组的内存解析:
涉及的常用算法:排序,查找
十大排序算法:
选择排序:直接选择排序、堆排序(不稳定)nlog2n
交换排序:冒泡排序(小——大)、快速排序(不稳定)nlog2n
插入排序:直接插入排序、折半插入排序、Shell排序
归并排序(稳定)nlog2n,桶式排序,基数排序
Arrays工具类
Boolean equals(int[] a,int[] b)
String toString(int[] a)
void fill(int[] a,int val)
void sort(int[] a)
int binarySearch(int[] a,int key)
复制数组 vs 赋值操作
| 复制数组 | 赋值操作 |
|---|---|
| int[] arr1 = new int[arr.length];for(;;;) | array2 = array1; |
private、public、protected、缺省
三条主线:① 类及类的成员:属性、方法、构造器;代码块、内部类
② 面向对象的三大特征:封装、继承、多态、(抽象性)
③ 关键字:this,super,abstract,interface,static,final,package,import
| 面向过程 | 面向对象 |
|---|---|
| 强调功能 | 强调具备功能的对象 |
| 以函数为最小单位 | 以类/对象为最小单位 |
| 考虑怎么做 | 考虑谁来做 |
类:抽象的、概念上的内容
对象:实实在在存在的一个个体。
对象是类的实例。
| 成员变量(类的属性) | 局部变量 | |
|---|---|---|
| 不同点 | 位置:类的{}中 | 位置:其他 |
| 可以使用权限修饰符 | 不可以使用权限修饰符 | |
| 有默认初始化值 | 没有默认初始化值,一定要显性赋值 | |
| 加载到堆空间中~非static | 加载到栈空间中 |
描述类中具有的功能
声明:
public void eat(){
System.out.println("好吃");
}
5面向对象(中)
6面向对象(下)
Java高级编程


