java基础
IdeaRJ
这个作者很懒,什么都没留下…
展开
-
包装类
包装类 Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对 象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下 基本类型 对应的包装类(位于java.lang包中) byte Byte short Short int Integer long Long float Fl...原创 2019-08-02 09:54:23 · 104 阅读 · 0 评论 -
常用API
常用API 时间:Date与Calendar Date类常用的方法 java.util.Date 类 表示特定的瞬间,精确到毫秒 public Date() :分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 public Date(long date) :分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元 (epoch)”,即1970年1月1日00:00:00 ...原创 2019-08-02 09:53:57 · 74 阅读 · 0 评论 -
集合工具类Collections
Collections Collections是集合工具类,里面提供了很多操作集合的方法. 这个类没有看到构造方法,里面的方法全是静态方法,我们直接使用类名调用 Collections类的方法: static boolean addAll(Collection<?> c, T… elements) 将后面的数据添加到前面的集合中 static void sh...原创 2019-08-02 10:13:01 · 85 阅读 · 0 评论 -
Map集合
Map集合 特点 保存键和值 键不能重复 一个键对应一个值 有对应关系的就考虑使用Map来存储 代码实例 public static void main(String[] args) { HashMap<Integer,String> hs = new HashMap<>(); hs.put(1,"xiaohong");//put---添加/修改 ...原创 2019-08-02 10:14:30 · 93 阅读 · 0 评论 -
可变参数
可变参数 什么是可变参数: 是JDK1.5的新特性 参数类型相同,参数个数任意 参数的类型都是相同的,但是个数不一样的,写很多重载方法也很麻烦,可以使用可变参数. 格式 可变参数格式(重点): 修饰符 返回值类型 方法名(数据类型… 变量名) { } 好处 一个可变参数的方法,可以传入任意多个参数,就不用写多个重载方法 代码案例 public static void main(String[] a...原创 2019-08-02 10:15:36 · 122 阅读 · 0 评论 -
线程
线程 线程与进程 进程: 正在运行的程序 线程:是进程的执行单元,线程是用来执行程序的代码的 并行与并发 1.什么是并行? 两个或以上的事件在同一时刻发生(同时发生) 2.什么是并发? 两个或以上的事件在一个时间段内发生(交替执行) Thread类创建线程 步骤 1.定义类继承Thread 2.重写run方法 3.创建子类对象 4.调用st...原创 2019-08-02 10:18:20 · 61 阅读 · 0 评论 -
异常
异常 Java中的异常体系: Throwable: 异常和错误的父类 JVM处理异常的方式 1.打印错误信息 2.终止程序 常规处理异常的方式 1.throws处理异常 (不负责) 2.try…catch处理异常 (负责任) throw关键字 throw的作用: 创建/产生/制造异常 格式 throw new 异常类名(); 代码实例 public static void main(String...原创 2019-08-02 10:20:33 · 63 阅读 · 0 评论 -
Lambda表达式
Lambda表达式 Lambda表达式相当于替换匿名内部类重写方法,简化匿名内部类的使用,代码更加单 Lambda表达式的前提 1.参数或变量类型是接口 2.接口中只能有一个抽象方法 表达式格式 Lambda表达式格式: () -> { } (): 参数列表 {}: 方法体 ->: 没有实际含义,表示指向 代码实例 public static voi...原创 2019-08-02 10:22:05 · 66 阅读 · 0 评论 -
Stream流
Stream流 Stream相当于流水线,Stream流用于加工和处理集合数据 我们使用Stream可以对数据进行处理.处理后怎么办?count,forEach Stream流本身不保存数据 需要将Stream操作后的数据重新存储到集合或数组中(收集数据) 将Stream流结果收集到集合中 // 将Stream流结果收集到集合中 List<String> list...原创 2019-08-02 10:22:43 · 118 阅读 · 0 评论 -
多线程安全
多线程 继承Runnable类实现多线程 步骤 1.定义一个类实现Runnable接口,重写run方法,在run方法中编写卖票逻辑 2.创建多个线程,传入接口的实现类对象 3.启动多个线程 代码实例 3个窗口同时售票 //测试类实现 public static void main(String[] args) { Ticket t = new Tic...原创 2019-08-02 10:23:19 · 89 阅读 · 0 评论 -
解决线程安全问题的方法
多线程 处理多线程安全问题 1.同步代码块 步骤 1.定义一个类实现Runnable接口,重写run方法,在run方法中编写卖票逻辑 2.创建多个线程,传入接口的实现类对象 3.启动多个线程 代码实例 3个窗口同时售票 //测试类实现 public static void main(String[] args) { Ticket t = new Ti...原创 2019-08-02 10:24:00 · 128 阅读 · 0 评论 -
Collection
Collection Collection常用功能 1.boolean add(E e) 往集合中添加一个元素 2.void clear() 从此集合中删除所有元素 3.boolean contains(Object o) 判断集合中是否包含指定的元素 4.boolean isEmpty() 判断集合是否为空(没有元素),如果为空返回true 5....原创 2019-08-02 09:54:51 · 53 阅读 · 0 评论 -
权限修饰符
权限修饰符 在Java中提供了四种访问权限,使用不同的访问权限修饰符修饰时,被修饰的内容会有不同的访问权限 public:公共的,所有地方都可以访问。 protected:当前类 ,当前包,当前类的子类可以访问。 缺省(没有修饰符):当前类 ,当前包可以访问。 private:私有的,当前类可以访问。 public > protected > 缺省 > private 编写代...原创 2019-08-02 09:55:07 · 83 阅读 · 0 评论 -
static关键字
static关键字 普通的成员变量:每次创建对象时,都会单独保存一份成员变量 1.static作用 由static修饰的成员变量属于类的,被修饰的变量会进入静态变量区,在内存中只存在一份,可以节省内存,这个类中的所有对象都共享这一份变量 2.static修饰成员变量的格式 static 数据类型 变量名 例如: static String name; 3.static修饰成员变量的调用 类名.静...原创 2019-08-02 09:57:40 · 174 阅读 · 0 评论 -
抽象类
抽象类 1.什么是抽象方法 没有方法体的方法,就是抽象方法 抽象方法需要在抽象类中 2.抽象方法格式 修饰符 abstract 返回值类型 方法名(参数列表); 和普通方法相比: 1.在返回值类型前面添加abstract 2.将方法体{}换成; 3.抽象类的格式 abstract class 类名 { } 4.抽象类的使用步骤 定义子类继承抽象类 重写抽象方法 创建子类对象 5.抽象类的特点 ...原创 2019-08-02 09:57:24 · 88 阅读 · 0 评论 -
方法重写
方法重写 回顾方法重载(overload) 同一个类中,方法名相同,参数列表不同。 1.什么是方法重写(override) 在子类中将父类的方法重新写一遍。 子类和父类出现了同名的方法。 2.什么时候需要方法重写 当子类觉得父类的方法功能不够强大,子类就重新写一次这个方法。 3.@Override Override注解: 帮我们检测方式是否是重写方法 4.方法重写注意事项 重写是父类和子类的事...原创 2019-08-02 09:57:14 · 86 阅读 · 0 评论 -
继承
继承extends 1.什么是继承 在现有类的继承上定义新的类,现有类称为父类,新的类称为子类,子类会自动拥有父类的内容 2.继承的好处 提高代码的复用性 3. 继承的格式 class 类名 extends 父类名 { } 4.继承的子类与父类问题 父类的构造方法不会继承到子类中 父类私有的内容子类不能直接使用,需通过提供的getter/setter 5.继承后成员变量与成员方法 就...原创 2019-08-02 09:57:05 · 53 阅读 · 0 评论 -
final关键字
final关键字 为了避免子类随意修改继承的类,改写其内容,java提供了final关键字用于修饰不可改变的内容 类:被final修饰的类不能被继承 方法:被final修饰的方法不能被重写 变量:被final修饰的变量,有且只能被赋值一次 1.使用方式 修饰类 格式: final class 类名{ } 代码: final class Fu{ } //class Zi e...原创 2019-08-02 09:56:55 · 81 阅读 · 0 评论 -
单例模式
单例模式 1.单例模式的作用 单例模式一种常用的软件设计模式 通过单例模式可以保证系统中应用该模式的这个类只有一个实例,即一个类只有一个实例对象 2.单例模式的实现步骤 1.将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象 2.在该类内部产生一个唯一的实例化对象,并将其封装为private static类型的成员变量 3.定义一个静态方法返回这个唯一对象 3.单例模式的设计类型 ...原创 2019-08-02 09:56:40 · 193 阅读 · 0 评论 -
接口与抽象类
接口与抽象类 抽象类:抽象类中可以有抽象方法,也可以有普通方法,以及构造方法,成员变量等; 接口:接口是更加彻底的抽象,在JDK8之前,接口中全部是抽象方法和常量,在JDK8之后陆续可以写入私有方法,默认方法,静态方法 1.接口的定义 修饰符 interface 接口名称{ //与类(class)相似 //抽象方法 } //修饰符 public (缺省) //接口声明:interface /...原创 2019-08-02 09:56:30 · 143 阅读 · 0 评论 -
枚举
枚举 枚举的应用场景 枚举的作用:一个方法接收的参数是固定范围之内的时候,那么即可使用枚举。 枚举的概念 枚举是一种特殊类。枚举是有固定实例个数的类型,我们可以把枚举理解成有固定个数实例的多例模式。 枚举的应用场景 枚举的作用:枚举通常可以用于做信息的分类,如性别,方向,季度等。 定义枚举的格式 enum 枚举名 { 第一行都是罗列枚举实例,这些枚举实例直接写大写名字即可。 } 案例 ...原创 2019-08-02 09:56:11 · 106 阅读 · 0 评论 -
Object类
Object类 java.lang.Object 类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化 的时候,终找的父类就是Object。 如果一个类没有特别指定父类, 那么默认则继承自Object类 public class MyClass /*extends Object*/ { // ... } toString方法 public Stri...原创 2019-08-02 09:55:58 · 192 阅读 · 0 评论 -
代码块
代码块 1.静态代码块 格式 static{ // 执行代码 } 每次执行类,加载类的时候都会先执行静态代码块一次。 静态代码块是自动触发执行的,只要程序启动静态代码块就会先执行一次。 作用:在启动程序之前可以做资源的初始化,一般用于初始化静态资源。 代码案例 public class DaimaKuaiDemo01 { public static String sc_name ...原创 2019-08-02 09:55:48 · 46 阅读 · 0 评论 -
多态
多态 多态是继封装,继承后面向对象的第三大特性 多态是出现在继承或接口实现关系中 多态的定义 是指同一行为,具有多个不同表现形式。 多态前提 继承或者实现【二选一】 方法的重写【意义体现:不重写,无意义】 父类引用指向子类对象【格式体现】 体现格式 父类类型 变量名 = new 子类/实现类构造器; 变量名.方法名; 实现例子 定义父类: public class Animal { p...原创 2019-08-02 09:55:38 · 187 阅读 · 0 评论 -
内部类
内部类 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类 什么时候使用内部类 一个事物内部还有一个独立的事物,内部的事物脱离外部的事物无法独立使用 人里面有一颗心脏。 汽车内部有一个发动机。 为了实现更好的封装性。 内部类的分类 静态内部类,类定义在了成员位置 (类中方法外称为成员位置,有static修饰的内部类) 实例内部内,类定义在了成员位置 (类中方法外称为成...原创 2019-08-02 09:55:29 · 139 阅读 · 0 评论 -
线程池
线程池 只创建一个线程执行一个任务的缺点: 我们创建一个线程执行任务后线程死亡. 如果线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 定义 线程池就是存放线程的容器. 线程池的优点 线程池里面的线程不会销毁,可以重复使用.减少了线程的创建和销毁,提高线程的利用率,节省了资源 Runnable实现线程池 定义...原创 2019-08-02 10:24:25 · 96 阅读 · 0 评论