java和java基础

8bit = 1byte 1024 byte = 1kb

jdk包含jre, jre包含jvm

自动类型提升(由容量小的提升到容量大的)

byte\char\short-> int->long->float->double

位运算符

<< 左移  
>> 右移  
>>> 无符号右移  
&  
|  
^异或  
~取反  
结论:
1、位运算符操作的都是整数的数据  
2、<< : 左移在一定范围内,每向左移1位,相当于 * 2  
>>: 右移在一定范围内,每向右移1位,相当于 / 2

数组

//静态初始化
int[] ids = new int[] {1,2,3,4,12};
// 动态初始化
String[] names = new String[2];
names[0] = "addisons";
names[1] = "lanhua";

数组初始值

数组元素是整数: 0  
数组元素是浮点: 0.0  
数组元素是char: 0
数组元素是boolean: false  
数组元素是引用数据类型: null

内存简化结构

栈(stack):局部变量

堆(heap): new出来的结构,包括对象和数组

方法区: 包括常量池,静态域

二维数组的使用

// 静态初始化
int arr1[] = new int[] {1,2,4};
int arr2[][] = new int[][] {{1,2}, {2,3}, {3,4}};
// 动态初始化
String arr3[][] = new String[3][];
String arr4[][] = new String[3][2];

面向对象

面向过程:关注的是做的过程
面向对象:关注的谁来做,关注的重点是谁

局部变量没有初始化值,必须要给他赋值之后才能进行调用

《JVM 规范》

JavaBean

类是公共的
有一个无参数的公共构造方法
所有属性,且对应的get、set方法

UML类图

关键字this

this.getAge(); //调用方法
this调用构造器: this(age); //调用构造器 构造器内部最多只能调用一次this()

关键字package

java.lang : java语言的核心包类,如string, math, math, integer, ststem和thread  
java.net : 网络相关的接口  
java.io : 输入输出的类  
java.util : 工具类: 如定义系统特性, 接口集合框架类, 日期相关  
java.text : java格式化的类 
java.sql : jdbc数据库编程的相关接口  
java.awt: 包含了构成抽象窗口工具集(gui)

关键字import

lang包下面不需要倒入
同一个包下面不需要倒入
如果倒入的两个是重名的,则需要使用全路径来进行倒入如: java.lang.String
如果使用子包下面的结构,则依然要要进行倒入

Eclipse 常用快捷键

command + 1 // 快速修复  

command + shift + o //批量导包  

command + shift + t //搜索类  

command + o //当前类搜索  

command + t //查看当前类的结构  

shift + enter // 重新开启一行  

command + shift + f //格式化代码  

command + alt + down // 往下复制  

command + alt + up //往上复制  

方法重写

区分重载和重写?
1、重写:子类继承父类后,可以对父类中同名同参数的方法进行覆盖操作
2、应用:重写以后,当创建子类对象以后,通过子类对象调用子父类中的同名同参数的方法时,实际执行的是子类重写父类的方法

重载: 多个具有不同的参数个数或者类型的同名函数,同时存在于同一个类中,是一个类中多态性的一种表现

重写的权限修饰符和返回值规范

权限:子类重写的方法权限必须大于或者等于父类的方法,但是父类的 private 的类是不能进行重写的

返回值:父类的返回值类型是void,则子类重写的方法必须是void

父类的返回值是A类,则子类重写的返回值可以是A类,或者A类的子类

如果父类的返回值类型是基本数据类型,则子类重写也必须是基本数据类型

super 关键字

super可以理解为父类的当前对象,相当于this, 可以使用super.属性;super.方法来调用父类的属性和方法
当子类和父类有相同名字的属性 则调用子类用this,调用父类的用super
super调用构造器: super(型参列表)来调用父类中声明的制定构造器, super(型参列表)必须声明在子类构造器的首行
this(型参列表) 或者super(型参列表)只能二选一,不能同时并存
在构造器的首行,没有显示的声明this(型参列表) 或者super(型餐列表),则默认调用的是类中空参的构造器

多态性

一个事物的多种形态
Person persion = new Man();
多态性-> 工厂模式 动态绑定