欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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; 
      }
      
  • 循环结构 (循环三条件,初始值,变化量,终点判断条件)

    • 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();

相关标签: JAVA专栏