
分割线 — ***
超链接 [] ()
点击我





编译javac java文件,会生成.class文件

java基础语法

标识符和关键字


数据类型






对象与内存分析

类型转化





实例变量

局部变量
在方法内{}定义和使用,必须声明和初始化值
类变量 static
常量
final


变量的命名规范

运算符
Ctrl+d复制当前行到下一行


++、–从顺序加下来谨记!





三元运算符

包机制

java Doc文档

生产java doc文档指令


Java流程控制

scanner






顺序结构,最基本的结构
选择结构

if

if else

if多选结构


嵌套的if结构

switch多选择结构**


JDK7的新特性,表达式结果可以是字符串!!!
while



do while



For循环


快捷键100.for


九九乘法表

增强for循环

break continue




Java的方法


main方法尽量显得更简洁,把封装的代码放到其他地方

实参和形参

方法的重载
参数不一样,名字可以一样

递归


package method;
public class digui {
public static void main(String[] args) {
System.out.println(f(5));
}
public static int f(int n){
if (n==1){
return 1;
}else {
return n*f(n-1);
}
}
}
Java数组

数组的定义


数组下标从0开始


内存分析


数组的四个基本特点


数组的使用
idea控制台输出乱码解决问题

编辑图中文件加上-Dfile.encoding=UTF-8即可
package method;
public class ArrayDemo1 {
public static void main(String[] args) {
int[] arrays = {1, 2, 3, 4, 5};
//打印数组全部元素
for (int i = 0; i < arrays.length; i++) {
System.out.println(arrays[i]);
}
System.out.println("-------------");
//计算所有元素的和
int sum = 0;
for (int i = 0; i < arrays.length; i++) {
sum += arrays[i];
}
System.out.println("总和为" + sum);
System.out.println("-------------");
//查找最大的元素
int max = arrays[0];
for (int i = 1; i < arrays.length; i++) {
if (arrays[i]>max){
max=arrays[i];
}
}
System.out.println("max="+max);
}
}
增强for循环

数组反转

多维数组



冒泡排序
//冒泡排序
public void sort(int[] array){
//临时变量
int temp=0;
//外层循环,判断我们这个要走多少次
for (int i = 0; i < array.length-1; i++) {
for (int j = 0; j < array.length-1; j++) {
if (array[j+1]>array[j]){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
}

稀疏数组



面向对象



实例化这个类 new,要么加静态static,才可以调用

实际参数和形式参数类型要对应





构造器
和类名相同,没有返回值
默认创造一个构造方法
与类名相同没有返回值。无参构造方法



封装

private 属性私有,不能直接调用


封装的意义:
- 提供程序安全性,保护数据
- 隐藏代码的实现细节
- 统一接口
- 系统可维护增加了
继承
在java中,所有的类,都默认直接或者间接继承object



this和super的区别
this当前类 (调用当前类的构造器,必须在子类的第一行)
super指的是调用父类构造方法(调用父类的构造器,必须在子类的第一行)
private 私有的东西无法被继承


方法重写
需要有继承关系,子类重写父类发方法
-
方法名必须相同
-
参数列表必须相同
-
修饰符:范围可以扩大: public>protect>default>private
-
抛出的异常:范围,可以被缩小:但是不能扩大:classnotfoundexception --》exception(大)
重写,子类的方法和父类必须一致;方法体不同!
为什么要重写?
-
父类的功能,子类不一定需要或者不一定满足!
idea重写快捷键: Alt+Insert:override;

-
多态


注意事项:
- 多态是方法的多态,属性没有多态
- 父类和子类,有联系 类型转换异常! ClassCastExceptiion!
- 存在条件:继承关系,方法需要重写,父类引用指向子类对象! Father f1=new Son();
- static 方法,属于类,他不属于实例
- final 常量
- private 方法


强制转换

instanceof类型转换

static
普通方法可以调用静态方法但是静态方法只能调用静态方法
只执行一次

抽象类
abstrcat 抽象类
抽象类的所有方法,继承
特点:
- 不能new这个抽象类,只能靠子类趋势线她:约束
- 抽象类中可以写普通方法
- 抽象方法必须在抽象类中
- 抽象类所有的方法,继承了它的子类,都必须要实现它的方法,除非他也是抽象类


接口
作用:
- 约束
- 定义一些方法,让不同的人实现~
- public abstract
- 接口不能被实例化,接口中没有构造方法
- implements可以实现多个接口
- 必须重写接口中的方法



内部类
内部类可以获取外部类的私有属性和私有方法




异常机制


异常体系结构



异常处理机制
idea捕获快捷键:Ctrl+Alt+T 选中需要捕获的异常代码



package oop;
public class text {
public static void main(String[] args) {
// int a = 1;
// int b = 0;
// System.out.println(a/b);
try { //监控区域
int a = 1;
int b = 0;
System.out.println(a/b);
}catch (ArithmeticException e){ //catch(想要捕获的异常类型!) 捕获异常
System.out.println("捕获异常,变量b不能为0");
}finally { //处理善后工作,可以省略,假设io,资源,最后需要关闭
System.out.println("finally!新年快乐");
}
}
}
捕获异常,变量b不能为0
finally!新年快乐
Process finished with exit code 0


自定义异常



常用类


string、stringbuffer和stringbuilder的区别

集合框架list、set、map


IO流


多线程



网络编程

GUI

注解和反射



593

被折叠的 条评论
为什么被折叠?



