Java学习

181 阅读3分钟

Java学习

数组声明方法

int[] a;
double[] mylist;
a = new int(10);

基本数据类型和引用数据类型

关键字

static:静态属性(类变量)vs非静态属性(实例变量) 静态方法中,不能使用this、super等关键字。

在内存中的样子

设计模式

单例模式:饿汉式、懒汉式。

线程安全? 应用场景:网站计数器(pv、uv、)、日志信息、数据库连接池、读取配置文件的类、win的任务管理器和回收站

类自动生成tostring方法,alt+shift+s 参考代码块解释

Java 之访问控制权限(public,private,protected,default)详解

代码块

  1. 作用

可以给所有对象进行初始化

接口、继承

因为Java是单继承的,c++是多继承,java提出接口,实现类似多继承的效果。

继承是“是不是”的问题,接口是“能不能”的问题。 java中接口(interface)详解

package cn.com.Classwork190124;

/*
    如果一个类中,既有抽象方法,又有非抽象方法,那么该类只能定义为抽象类,不能定义为接口
    如果一个类中,只有抽象方法,没有非抽象方法,那么该类可以定义为接口
                            一般就定义为接口
    定义一个接口,使用interface关键字  接口,类,枚举,注解等都是java中的类型
    接口中所有的方法,都是抽象方法
        所以也可以说,接口就是一个特殊的抽象类

    接口中除了定义方法外,还可以定义成员变量
                特点;方法和属性默认都是public修饰,也可以使用protected,但不能用private
                      所有的属性都是静态的常量,默认省略了static和final修饰符,属性的值必须实例化(初始化)

 */

public interface Flyable {
    public final int wingsNumber = 2;
    public abstract void fly();

}

设计模式

  1. 抽象类与抽象方法:多态的应用(模板方法设计模式-p348)
  2. 代理模式(接口相关的设计模式)
  3. 工厂模式 开闭原则:对扩展开发,对修改封闭。匿名对象?

并行和并发

所以,并发和并行的区别就很明显了。**它们虽然都说是"多个进程同时运行",但是它们的"同时"不是一个概念。并行的"同时"是同一时刻可以多个进程在运行(处于running),并发的"同时"是经过上下文快速切换,使得看上去多个进程同时都在运行的现象,是一种OS欺骗用户的现象。 **

实际上,当程序中写下多进程或多线程代码时,这意味着的是并发而不是并行。并发是因为多进程/多线程都是需要去完成的任务,不并行是因为并行与否由操作系统的调度器决定,可能会让多个进程/线程被调度到同一个CPU核心上。只不过调度算法会尽量让不同进程/线程使用不同的CPU核心,所以在实际使用中几乎总是会并行,但却不能以100%的角度去保证会并行。也就是说,并行与否程序员无法控制,只能让操作系统决定。

参考 我已经理解了并发和并行的区别

重写和重载的区别

重写(override)是子类对父类的某方法重新进行定义 重载(overload)是在一个类里面,方法名一样,参数不一样。

String,StringBuffer与StringBuilder的区别

参考

未知

代码块?内部类? 类的加载?对象的加载? 类加载到方法区?