
Java基础
文章平均质量分 57
以此栏目记录Java基础相关,因自己不从事java岗位,可能内容较少
XiYue_HUI
每日进步一点:一面试题 + 一道leetcode
展开
-
Java专属数据输入输出流
今天我们看一下这个专属数据的流DataInputStream DataOutputStream这两个流是包装流,专门用于给数据进行输入输出的流,我们可以看一下这个包装流对于数据量类型的强大功能处理,这两个流不仅能对数据类型的元素进行输入输出,还能保存其类型,也就是说我们不仅能保存数据还能保存数据的类型,并且用其他的流无法进行处理,且数据的存取的规则顺序必须一致,才能正确的读取内容我们看一下实例:import java.io.*;public class dataStreamTest {原创 2021-02-14 13:16:13 · 125 阅读 · 1 评论 -
节点流&包装流初体验
今天学习了包装流,我们一起来看看,神魔叫做节点流和包装流Java流的分类按流向分:输入流: 程序可以从中读取数据的流。输出流: 程序能向其中写入数据的流。按数据传输单位分:字节流: 以字节为单位传输数据的流字符流: 以字符为单位传输数据的流按功能分:节点流: 用于直接操作目标文件的流过滤流: 是对一个已存在的流的链接和封装,通过对数据进行处理为程序提供功能强大、灵活的读写功能。我们的节点流是真正的实现输入输出功能的流,我们的包装流是实现了对节点流的功能增强的功能,我们看一看到底有什么原创 2021-02-13 17:34:14 · 386 阅读 · 5 评论 -
IO结合Properties集合,模拟配置文件的读取
IO结合Properties集合,模拟配置文件的读取我们学完了IO流后,可以利用IO流进行文件中配置信息的读取,这样我们可以在不修改代码的情况下,只修改配置文件,就可以进行操作!!!我们的Java集合中有一个特殊的map集合叫做Properties ,其特殊之处,就在于它的Key和Value都是String类型的,也就是说我们可以将其视为配置信息类型的集合,我们通常将.properties后缀作为配置文件的后缀(当然并非绝对了),接下来我们就进行利用IO流读取配置文件中的相关信息!!!import j原创 2021-02-16 14:46:11 · 151 阅读 · 0 评论 -
对象流初体验
对象输入输出流ObjectInputStream和ObjectOutputStreamJava的IO中,我们可以对对象进行输入输出来进行保存对象的状态,也就是我们可以在内容和磁盘之间来进行对象的写出和读入:这里我们需要介绍专属的对象输入输出流ObjectInputStream和ObjectOutputStream两个专属的对象流,其中有两个重要的概念,序列化和反序列化其中我们对于每个对象的保存都要注意到一个重要的事情:就是自定义的保存的对象一定要实现Serializable接口,这是一个标志性接口原创 2021-02-14 13:45:33 · 138 阅读 · 2 评论 -
javaIO输入输出流(操作对象)
**一:**对象输出流用来持久化对象的,可以将对象数据写入到文件。只有支持Serializable接口的对象支持写入到流,每个序列化对象被编码,包括类的名称和类的签名,以及类的对象中的字段值以及从初始化对象引用的任何其他对象的闭包。**二:**对象输入流是用来恢复之前序列化存储的对象,对象输入流可以确保每次从流中读取的对象能匹配Java虚拟机中已经存在的类,根据需求使用标准机制加载类,另外只有支持Serializable或者Externalizable接口的类可以从流中读取出来1.按照系统默认的规则输入原创 2021-03-24 19:51:53 · 265 阅读 · 0 评论 -
Java的io初体验
Java IO初体验,今天学了java.io的内容,我总结了以下的知识:1.我们输入指的是 外存文件上的内容 输入到内存中,称为输入input 或者写入read2.我们输出指的是 将内存中的数据内容写入到外存保存到相应的文件中,称为输出output或者写出write3.当我们进行输入输出的时候:主要用到的接口为 InputStream ,OutputStream, Reader, Writer其中Stream结尾的为字节流 , Reader,Writer为字符流,我们要清楚我们的字节流一次原创 2021-02-12 17:59:31 · 161 阅读 · 2 评论 -
String类,我来了,看看你有啥值得我青睐
String类源于Java中的一个类java.lang.StringString类表示字符串类型,属于引用类型,不属于基本类型Java中用双引号括起来的都是String类的对象Java中String类对象用双引号括起来的均为不可变对象,其中的字符串都是不能改变的jdk规定用双引号括起来的字符串对象都是存储在方法区的常量池当中的,但是通过构造方法创建字符串对象的时候,就不是在常量池中了,new对象产生的对象是在堆中我们先看看内存中的字符串对象的存在形式:String s1="abcdef"原创 2021-02-02 15:11:00 · 115 阅读 · 0 评论 -
反射
反射1.反射可以操作Java字节码,创建对象,让程序更加灵活*2.反射相关类在java.lang.reflect.包下3.反射相关的类有哪些呢?java.lang.Class代表整个字节码文件,类似Java类java.lang.reflect.Method代表Java字节码中的方法,类似类中的方法java.lang.reflect.Constructor:代表Java字节码中的构造方法,类似类的构造方法java.lang.reflect.Field代表字节码中的属性字节码,代表Java类中的成原创 2021-03-28 23:35:03 · 205 阅读 · 0 评论 -
Java包装类-自动封箱拆箱
包装类1.Java中的包装类内置数据类型,如:byte、int、long、double 等。在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java 语言为每一个内置数据类型提供了对应的包装类。所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类。从上面可以看出我们说的包装类实际上就是封装了基本数据的对象的形式,我们看到了,Number类是一个抽象类,是所有数字类型对象的父类,所以每原创 2021-02-02 18:33:29 · 479 阅读 · 0 评论 -
(面试排序算法模板)冒泡,选择,插入,快排,归并
冒泡,选择,插入,快排,归并public class Sort { public static void main(String[] args) { int[] arr = {3,2,5,1,5,7,4,3,9}; mergeSort(arr,0 , arr.length-1); for(int i = 0 ; i < arr.length ; i++){ System.out.print(arr[i]+ " ");原创 2021-06-06 17:36:15 · 99 阅读 · 0 评论 -
Java多线程初体验
今天学习了多线程的内容我们开始吧!!!进程是资源分配的单位,线程是调度执行的单位!!!多线程中,每个线程的栈空间独立,堆空间方法区共享!!!进程是程序的一次动态执行过程,从代码加载,代码执行到执行完毕的一个完整的过程, CPU 具备分时机制,所以每个进程都能循环获得自己的CPU 时间片。由于 CPU 执行速度非常快,使得所有程序好像是在同时运行一样。多线程是实现并发机制的一种有效手段。进程和线程一样,都是实现并发的一个基本单位。线程是比进程更小的执行单位,多线程是指一个进程在执行过程中可以产生多个更原创 2021-02-15 10:51:54 · 159 阅读 · 3 评论 -
线程的等待通知机制
*线程的等待和通知机制 对于线程而言,线程的等待通知一般用的是wait()和notify() 方法,但是二者有一些原创 2020-09-14 08:52:33 · 365 阅读 · 0 评论 -
线程sleep方法的面试题
线程sleep方法的面试题Thread类源码展示sleep方法:问题:下面代码中的t.sleep(3000)会让自定义的t线程睡眠3秒钟吗?如果不会,那么是让主线程睡眠3秒吗?为什莫呢?class Mythread extends Thread{ @Override public void run() { for (int i = 0; i < 4; i++) { System.out.println("自定义线程我爱你");原创 2021-02-16 15:03:10 · 372 阅读 · 0 评论 -
run方法中的异常不能throws???
run方法中的异常不能throws???我们在run方法中让线程执行时失去CPU睡眠一会:然而上述代码有错误?我们的一场不都是可以抛出或者try catch吗???答案在我们的源码中:如上展示一样:我们的Runnable接口中的run方法没有抛出异常,所以当我们实现了Runnable接口的时候我们重写run方法时,我们不能抛出比接口中方法声明更多的异常,所以我们只能try catch处理子类抛出的异常类型不能比父类抛出的异常类型更宽泛!(同样也适用于接口)...原创 2021-02-16 15:22:23 · 1400 阅读 · 3 评论 -
多线程的run和start方法的区别
多线程的run和start方法的区别我们run()方法只是一个类的普通方法,调用后自动压栈执行,执行完后弹栈便可但是我们start()方法作用开启一个分支线程,在JVM中开辟一块新的栈空间,代码执行完,自动结束,也就是说我们的start方法作用只是开辟空间,完成后就这行代码结束,我们的分支线程会自动调用run方法,也就是说我们的主线程在执行完 start方法后,剩下的主线程中的代码会和分支线程中的run方法共同抢夺CPU资源,进行抢占时间片执行代码!!t.run();方法执行仍未单线程的性质:pu原创 2021-02-15 11:09:30 · 532 阅读 · 1 评论 -
创建线程的第三种方式---JDK8新特性
创建线程的第三种方式—JDK8新特性实现Callable接口,创建线程Runnable和Callable接口的不同1.Callable可以返回一个类型V,而Runnable不可以,也就是说Callable有返回值可以被接收,但是Runnable接口没有返回值是void2.Callable能够抛出checked exception,而Runnable不可以。也就是说Callable接口可以有抛出异常,但是Runnable接口中的run方法不允许抛出异常3.Runnable是自从java1.1就有了,原创 2021-02-24 10:09:43 · 1104 阅读 · 0 评论 -
定时器的实现
Java多线程中还有一块内容,是定时器的实现定时器的作用:间隔一段时间,执行特定的程序。import java.text.SimpleDateFormat;import java.util.Date;import java.util.Timer;import java.util.TimerTask;public class timer { public static void main(String[] args) { logTime log =new logTime(原创 2021-02-24 10:33:28 · 182 阅读 · 0 评论 -
面试:生产者消费者
面试:生产者消费者(生产者消费者,思索,单例,八大排序)传统版 sychronized wait notifypublic class test { public static void main(String[] args) { A a =new A(); new Thread(()->{ for (int i = 0; i < 5; i++) { try {原创 2021-04-19 16:14:01 · 83 阅读 · 0 评论