JAVA基础总结(二)之基础语法
程序员文章站
2024-03-20 11:55:16
...
计算机计算原理
例如 2 * 8的一个计算方式。则为2的二进制 与8的二进制相乘
2的二进制有效位为 010 (第二个值的2的1次方等于2,0乘以任何值都是0)
8的二进制有效位为 01000 (第3个值的2的3次方等于8)
最终结果为16
基础语法
循环结构
-
顺序结构
- Java的基本结构就是顺序结构,除非特别指明,否则就是按照顺序一句一句执行。
-
分支结构
- 单分支结构 if
if(条件){ }else if(条件){ }else{ }
- 多分支结构 switch
switch(值){ case: // to doing break; case // to doing break; default: // to doing break; }
- 单分支结构 if
-
循环结构 (循环三条件,初始值,变化量,终点判断条件)
-
for
for(int i= 0; i < 10; i++ ){ }
-
while
while(终点判断条件){ // to doing }
-
do…while
do{ //循环体 }while(条件)
-
-
循环关键字
- break (终止整个循环)
- continue (终止当前循环,开始下一个循环)
- 注意: 当多循环的时候,为了使更灵活,注意使用循环标记:例如:
aa:for(int i = 0; i< 10; i++){ bb:for(int j = 0 ;j < 10 ; j++){ break aa; } } aa代表给第一个循环取了一个aa的名字,break aa 直接终止aa这个循环.
数组,集合
简介
* 数组是一个容器
* 数组是一组相同类型的数据组合,将这些数组统一管理
* 数组是一个引用数据类型
* 集合是一个用来存放对象的容器
区别
- 长度区别
- 数组长度固定
- 集合长度可改变
- 内容区别
- 数组可以是基本类型,也可以是引用类型
- 集合只能是引用类型
- 元素内容
- 数组只能存储同一种类型
- 集合可以存储不同类型
数组定义
int [] myList;
int [] myList = {} // 空数组
int [] myList = {1,2,3,4,5} // 指定数组内容
int myList[][]; //二维数组
集合
- Collection 接口的接口 对象的集合(单列集合)
├——-List 接口:元素按进入先后有序保存,可重复
│—————-├ LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全
│—————-├ ArrayList 接口实现类, 数组, 随机访问, 没有同步, 线程不安全
│—————-└ Vector 接口实现类 数组, 同步, 线程安全
│ ———————-└ Stack 是Vector类的实现类
└——-Set 接口: 仅接收一次,不可重复,并做内部排序
├—————-└HashSet 使用hash表(数组)存储元素
│————————└ LinkedHashSet 链表维护元素的插入次序
└ —————-TreeSet 底层实现为二叉树,元素排好序
————————————————
- Map 接口 键值对的集合 (双列集合)
├———Hashtable 接口实现类, 同步, 线程安全
├———HashMap 接口实现类 ,没有同步, 线程不安全-
│—————–├ LinkedHashMap 双向链表和哈希表实现
│—————–└ WeakHashMap
├ ——–TreeMap 红黑树对所有的key进行排序
└———IdentifyHashMap
————————————————
继承
继承
- extends (先创建一个class文件,定义为父类。可以再次创建一个文件继承父类。继承后可以使用父类定义的方法与变量) .注意: java只能单继承
- 子类可以与父类的方法签名一致,如果这样则会覆盖父类方法。叫覆盖重写
- 子类继承后,依旧包含父类private属性的内容
public class father{
}
public class son extends father{
}
访问控制 (访问权限从高到低)
- public 任何地方都可见
- protected 仅在自己的包中,自己的子类可见
- 无修饰符, 只能在自己包中可见
- private 只能在自己的类中可见
static
- static 常用来修饰类的成员.
- 被static修饰后,静态变量。在程序运行过程中,全局只使用一份固定的内存
- 只能通过实例访问,不能通过类访问
单例模式
- 全局只创建一个使用一个实例。这个实例的内存地址指向都是同一个.
public class Singleton {
//2.本类内部创建对象实例
private static Singleton instance = new Singleton();
private Singleton() {
}
//3.提供一个公有的静态方法,返回实例对象
public static Singleton getInstance() {
return instance;
}
}
final
- 被final 修饰后不能被继承,不可修改,不可重写
- 被final 修饰的变量只能赋予一次值
- 常用于定义常量。public final static int 常量名
抽象方法
- 抽象类里面才能定义抽象方法
- 抽象类: 被abstract修饰的类
- 不能实例,但是可以自定义构造方法
- 抽象类主要强制功能必须实现的定义成抽象方法
- 使用场景
- 抽取子类的公共实现的方法到父类中,然后子类又都需要单独实现的方法可以使用抽象。
// 吧公共的逻辑代码抽到父类中
public abstract class Base{
String name;
String work;
// 所有家庭成员都要工作。做什么工作只有自己知道
// 所以需要父类自己去获取
protected abstract void getWorkContent();
public void show(){
getWorkContent();
//
}
}
public class Father extends Base{
// 继承后必须实现抽象方法
protected void getWorkContent(){
name = "爸爸";
work = "管理";
};
}
// 最后
Father father = new Father();
father.show();
推荐阅读