
Java基础
ONESTAR博客
https://onestar.newstar.net.cn
展开
-
Java中继承
一、概述面向对象编程中,继承是一个比较重要的概念,继承描述的是事物之间的所属关系,是从已有的类中构建出新的类,已有的类称为父类,新的类称为子类,子类具有父类的数据属性和方法,并能扩展新的属性和方法(不能继承私有)。1、继承的使用格式:使用 extends 关键字 ==> class 子类 extends 父类 () 创建 Person 类和 Student 子类:public ...原创 2019-06-06 17:25:11 · 13912 阅读 · 20 评论 -
Java中Collections集合工具类
此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。它包含在 collection 上操作的多态算法,即“包装器”,包装器返回由指定 collection 支持的新 collection,以及少数其他内容。Collections常用方法public static <T> void sort(List<T> list):集合元素...原创 2019-07-07 13:42:11 · 2527 阅读 · 0 评论 -
Java中匿名对象
1、匿名对象的创建匿名对象是指在创建对象时,只有创建对象的语句,却没有把对象地址赋值给某个变量,如:对于已存在的Person类创建一个普通对象 Person P = new Person(); 创建一个匿名对象 new Person(); 2、匿名对象的特点创建匿名对象可以直接使用,没有变量名 new Person().work(); //work 方法被一个没...原创 2019-07-16 16:00:00 · 5073 阅读 · 2 评论 -
Java中内部类
目录一、概述二、内部类的分类1、成员内部类2、局部内部类三、匿名内部类1、匿名内部类含义2、匿名内部类的作用与格式一、概述将类写在其他类的内部,可以写在其他类的成员位置和局部位置,这时写在其他类内部的类就称之为内部类,其他类称之为外部类。在描述事物的时候,若一个事物内部还包含其他可能包含的事物,这时,就可以使用内部类来进行描述。eg:class 汽车{...原创 2019-07-16 17:10:08 · 3203 阅读 · 2 评论 -
Java中多线程
目录一、概述1、多线程和单线程2、程序执行原理3、主线程二、线程的创建1、继承 Thread 类创建线程(方法一)2、实现 Runnable 接口创建线程(方法二)三、线程的匿名内部类一、概述1、多线程和单线程多线程即一个程序中有多个线程在同时执行,单线程和多线程:单线程:若有多个任务,只有当上一个任务执行结束后,下一个任务才开始执行 多线程:若有...原创 2019-07-16 17:30:50 · 2956 阅读 · 1 评论 -
Java中序列化和打印流
目录一、对象序列化和反序列化1、概述2、对象序列化ObjectOutputStream和反序列化ObjectInputStream二、序列化注意事项1、静态不能序列化2、瞬态 transient 关键字3、Serializable 接口的含义4、序列化中的序列号冲突问题三、打印流1、打印流特点2、打印流常用的方法3、打印流开启自动刷新4、打印流复...原创 2019-07-12 14:22:48 · 2974 阅读 · 0 评论 -
Java中多线程安全、同步、死锁、等待唤醒机制
目录一、线程安全问题二、线程同步1、同步代码块2、同步方法三、死锁四、Lock 接口五、等待和唤醒机制一、线程安全问题如果有多个线程在同时运行,而这些线程可能会同时运行这段代码,程序每次运行结果和单线程运行的结果是一样的,而且程序中的变量值和和预期的一样,那么线程就是安全的,如果不是,则线程不安全。下面通过售票的案例来理解一下线程安全问题//模拟售票类...原创 2019-07-19 10:52:17 · 2665 阅读 · 1 评论 -
Java多线程中常见面试题
1、多线程有几种实现方案,分别是哪几种?继承 Thread 类 实现 Runnable 接口 通过线程池,实现 Callable 接口2、同步有几种方式,分别是什么,并分别说出其同步锁对象?同步代码块 ==> 同步锁对象为:任意对象 同步方法 ==> 同步锁对象为:this 静态同步方法 ==> 同步锁对象为:本类名.class3、启动一个线程时 run() ...原创 2019-07-19 11:06:34 · 2022 阅读 · 0 评论 -
Java中网络编程、TCP通信与UDP通信
目录一、网络通讯协议1、概述2、IP 地址和端口号3、InetAddress 类二、TCP 协议与 UDP 协议1、TCP 协议(1) 三次握手(2) 四次挥手2、UDP 协议三、TCP 通信1、ServerSocket 类(实现服务端)2、Socket 类(实现客户端)3、TCP 通信实例四、UDP 通信1、DatagramPacket...原创 2019-07-24 09:00:50 · 3507 阅读 · 0 评论 -
Java中线程池
目录一、概述二、Runnable 接口三、Callable 接口一、概述在Java中,创建和销毁线程花费的时间和消耗的系统资源都是相当大的,甚至可能要比在处理实际用户请求的时间和资源要多的多,除了创建和销毁线程的开销之外,活动的线程也需要消耗资源。如果在一个JVM中创建太多的线程,可能会使系统由于过度消耗内存或切换过度而导致系统资源不足,为了防止资源不足,需要采取一些办法来限制...原创 2019-07-16 23:42:04 · 2103 阅读 · 0 评论 -
Java中类的加载器和反射
目录一、类加载器1、类的加载2、类初始化时机(何时加载到内存中)3、类加载器的组成二、反射1、反射原理步骤2、获取一个类的 class 文件对象的三种方式3、获取class 文件中的成员(1) 使用反射获取无参的构造方法并运行(2) 使用反射获取有参的构造方法并运行(3) 反射获取构造方法并运行的快捷方式(4) 反射获取私有构造方法并运行(暴力反射)...原创 2019-07-23 12:01:23 · 2657 阅读 · 0 评论 -
TCP 实现文件上传(单线程实现和多线程实现)
文件的上传需要保证数据的安全性、完成性以及连接性,所以使用 TCP 协议来实现,这里就以上传一张图片文件为例,分别使用单线程和多线程来实现,单线程就是一个服务器接收一个客户端发来的图片,多线程就是一个服务器同时接收多个客户端发来的图片。一、单线程实现(1) 客户端实现:Socket 套接字连接服务器 通过 Socket 获取字节输出流,进行写图片 使用自己的流对象读取图片流资源 ...原创 2019-07-28 17:56:26 · 4125 阅读 · 2 评论 -
Java 中设计模式 之 单例模式
目录1、概述2、单例模式两种方法【1】饿汉单例模式【2】懒汉单例模式3、单例模式的优点4、单例模式使用场景5、单例模式注意事项1、概述定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例 包含: 私有的构造方法 指向自己实例的私有静态引用 以自己实例为返回值的静态的公有方法 2、单例模式两种方法单例模式根据实例化对象时机的不同...原创 2019-09-11 16:57:42 · 2016 阅读 · 2 评论 -
Java 中设计模式 之 工厂模式
目录一、简单工厂模式1、概述2、实现二、工厂方法模式1、概述2、实现三、抽象工厂模式1、概述2、实现三、总结1、工厂模式优点2、工厂模式适用场景3、三种模型的区别一、简单工厂模式1、概述简单工厂模式也叫静态工厂模式,将所有的创建对象任务交给了一个工厂类来实现,要想使用对象,直接找工厂类即可。以动物工厂类为例,可以将创建动物对...原创 2019-09-12 15:24:05 · 2311 阅读 · 0 评论 -
Java 中动态代理(基于接口和基于子类)
目录一、概述二、基于接口的动态代理1、介绍2、代码实例三、基于子类的动态代理1、介绍2、代码实例一、概述所谓的动态代理,需要一个代理类,这个代理类是动态生成的,那么这个任务就需要交给Java虚拟机来做了,由Java虚拟机来去动态的生成代理类,也就是动态代理,动态代理分为:基于接口的动态代理和基于子类的动态代理。特点:字节码要用的时候就创建,要用的时候就加载...原创 2019-09-19 14:37:06 · 4051 阅读 · 0 评论 -
Java中Properties集合
目录1、Properties 集合特点2、Properties 集合中存储键值对3、Properties 类中常用方法Properties 类表示了一个持久化的属性集,可保存在流中或从流中加载,属性列表中每个键及其对应的值都是一个字符串1、Properties 集合特点Properties 类是 Hashtable 的子类,Map 集合中的方法都可以用 该集合没有泛型,键...原创 2019-07-11 13:05:52 · 2690 阅读 · 0 评论 -
Java中集合的嵌套:嵌套集合、嵌套keySet遍历、嵌套entrySet遍历
一、嵌套集合1、ArrayList嵌套 ArrayListArrayList< ArrayList<String> > Collection< ArrayList<Integer> >2、Map嵌套 ArrayListHashMap<String, ArrayList<Person>> ArrayList&l...原创 2019-07-05 23:45:19 · 3585 阅读 · 0 评论 -
Java中Collection集合、Iterator迭代器、泛型
目录一、集合继承关系二、Collection接口1、Collection 集合创建格式2、Collection 接口的基本方法三、Iterator 迭代器1、Iterator 迭代器的实现2、Iterator 迭代器中常用的方法四、集合迭代中的转型五、泛型1、泛型的定义2、泛型类3、泛型接口4、泛型通配符5、泛型限定集合是Java中提供...原创 2019-06-29 23:37:35 · 3727 阅读 · 7 评论 -
Java中ArrayList集合
一、概述ArrayList集合是程序中最常见的一种集合,属于引用类型,在AyyayList内部封装了一个长度可变的数组,当存储元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,可以看做ArrayList是一个长度可变的数组。1、创建集合导包:import java.util.ArrayList; 创建对象:ArrayList<要存储的数据类型&g...原创 2019-06-04 15:42:38 · 5435 阅读 · 10 评论 -
Java中IO字符流、File类
目录一、概述1、字符流分类:2、FileWriter使用:3、追加写入:4、实现换行5、五种writer方法的重载6、FileReader的使用7、BufferedXxx和FileXxx的区别:8、BufferedWriter额外方法:9、BufferedReader额外方法:10、代码实例二、File 类1、File类的概述和作用2、Fil...原创 2019-06-04 23:37:56 · 4322 阅读 · 2 评论 -
Java中接口
目录1、概述2、接口的定义3、类实现接口4、接口特点5、接口中成员的特点6、接口的多实现7、接口的多继承8、类继承类同时实现接口9、接口的思想10、接口和抽象对比1、概述接口表示的是功能的集合,可看做是一种数据类型,接口中全是抽象方法,没有普通方法,是比抽象更抽象的“类”,接口只描述应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口...原创 2019-06-25 14:10:47 · 5012 阅读 · 7 评论 -
Java中多态
目录1、概述2、多态的定义与使用格式3、多态的特点4、多态成员的特点5、instanceof 关键字6、多态转型7、多态的优缺点1、概述多态就是描述一个事物的多种形态,如小明是一个学生,他既是人,也是学生,出现两种形态。Java中多态的代码体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类(实现类对象)的父类(接口)变...原创 2019-06-26 12:02:00 · 3997 阅读 · 7 评论 -
Java中 final、static 关键字
一、final 关键字(最终的意思)final 修饰的类:最终的类,不能被继承 final 修饰的变量:相当于一个常量,在编译生成 .class 文件后,该变量变为常量值 final 修饰的方法:最终的方法,子类不能进行重写,但可以继承过来使用二、static 关键字(静态的意思)static 可以用来修饰类中的成员(成员变量、成员方法),也可以用来修饰成员内部类特点:sta...原创 2019-06-26 15:47:30 · 3121 阅读 · 5 评论 -
Java中List集合与Set集合
目录一、List 集合1、List 接口特点2、List 接口中常用的方法3、List 集合存储数据结构4、ArrayList 集合ArrayList 集合是最常用的集合,是用存储数据结构,元素增删慢,查找快。5、LinkedList 集合6、Vector 集合二、Set 接口1、HashSet 集合2、HashSet 集合存储数据的结构(哈希表)3、S...原创 2019-07-02 00:23:42 · 5422 阅读 · 0 评论 -
Java中重写
一、概述当子类需要父类的功能,而子类有新的内容,可以重写父类中的方法。在实际开发过程中,随着代码量的逐渐增加,维护成了一个很大的问题,如果需要对某个方法进行修改,其本身代码以及其子类代码都会受到影响,而重写则很好的解决了这个问题。方法重写又称为方法覆盖、方法复写。方法重写特点在子类和父类中,出现了方法声明相同的情况 子类的方法声明要和父类相同 子类要重写的方法,方法的权限修饰符不能...原创 2019-06-24 14:51:05 · 11450 阅读 · 2 评论 -
Java中异常
目录一、异常的概述二、异常的继承体系和错误的区别1、异常的继承体系2、异常与错误的区别三、异常对象的产生原因和处理方式1、以数组索引越界异常ArrayIndexOutOfBoundsException为例分析产生原因2、异常的处理方式四、抛出异常throw和异常申明throws1、抛出异常具体操作2、使用格式3、异常申明throws五、try…cat...原创 2019-07-08 13:50:25 · 2735 阅读 · 1 评论 -
Java中抽象
一、概述当父类知道子类应该包含什么样的方法,但无法确定子类如何实现这些方法;在分析事物时,会发现事物的共性,将共性抽取出,实现的时候,就会有这样的情况:方法功能声明相同,但方法功能主体不同,这时,将方法声明抽取出,那么,此方法就是一个抽象方法。1、抽象的定义格式抽象方法的定义格式:public abstract 返回值类型 方法名(参数); 抽象类的定义格式:abstract cla...原创 2019-06-24 17:47:14 · 13927 阅读 · 7 评论 -
Java中常用的类(一):Object 类、String 类、StringBuffer类、StringBuilder 类
目录一、Object 类1、equals 方法2、toString 方法二、String 类1、字符串定义方式:2、String 类常用构造方法3、String 类的字符串的长度4、String 类其他方法三、StringBuffer 类1、StringBuffer 常用方法使用四、StringBuilder 类一、Object 类Object类...原创 2019-06-27 11:50:23 · 4073 阅读 · 2 评论 -
Java中常用的类(二):Date类、DateFormat类、Calendar类
目录一、Date类1、Date类构造函数2、Date 类常用方法二、DateFormat 类1、DateFormat 类构造方法2、DateFormat 类常用方法三、Calendar 类一、Date类Data 类表示特定的瞬间,精确到毫秒,使用Data类来表示当前系统时间1、Date类构造函数public Date():系统当前日期时间 pu...原创 2019-06-28 09:14:30 · 3032 阅读 · 4 评论 -
Java中commons-IO
目录一、概述二、导入 commons-io jar包1、获取 commons-io jar包2、导入 commons-io jar 包三、commons-io 的使用1、IO 工具类 FilenameUtils2、IO 工具类 FileUtils一、概述commons-IO是apache的一个开源的工具包,封装了IO操作的相关类,使用Commons IO可以很方...原创 2019-07-12 17:36:07 · 5156 阅读 · 0 评论 -
Java中常用的类(三):基本类型包装类、System类、Math类、Arrays类、BigInteger类、BigDecimal类
目录一、基本类型包装类1、8 种基本类型对应的包装类2、基本类型和对象转换3、自动装箱拆箱二、System 类三、Math 类四、Arrays 类五、BigInteger 类六、BigDecimal 类一、基本类型包装类在实际开发中,往往需要将数据转换成字符串类型进行存储,会根据需要转换成指定的基本数据类型,因此,Java将基本数据类型值封装成了对象,提...原创 2019-06-28 17:46:47 · 2981 阅读 · 3 评论 -
Java中Map接口
目录1、Map 集合特点2、Map接口中的常用方法3、Map 集合遍历方式 keySet 方法4、Map 集合 Entry 对象使用 entrySet 方法遍历5、HashMap 集合存储自定义对象和遍历6、LinkedHashMap 的特点7、Hashtable 的特点Map 集合和 Collection 集合不同,Map 集合是基于键(key)/值(value)...原创 2019-07-04 20:32:00 · 3204 阅读 · 0 评论 -
Java入门学习路线目录索引(持续更新中)
新增:使用IDEA搭建SpringBoot框架整合Mybatis、MySQL、Thymeleaf实现用户查询、注册、登录一、Java基础Java基础-继承 Java基础-抽象 Java基础-接口 Java基础-多态 Java基础-重写 Java基础-匿名对象 Java基础-内部类 Java基础-final、static关键字 Java基础-ArrayList集合 ...原创 2019-10-08 17:47:06 · 81013 阅读 · 87 评论