随笔分类 -  Java沉思录

通过后续的思考,总结java的知识点,力求在思考中得到进步
摘要:今天在写一段程序的时候,其中有一段是从键盘上输入数据,但是出现了其中有一个输入直接跳过的情况 import java.util.Scanner; public class Test { public static void main(String[] args) throws Exception { 阅读全文
posted @ 2023-04-11 12:05 一往而深, 阅读(75) 评论(0) 推荐(0) 编辑
摘要:等待唤醒机制基本实现 等待唤醒机制阻塞队列实现0 等待唤醒机制的基本实现 一.循环等待问题 假设今天要发工资,强老板要去吃一顿好的,整个就餐流程可以分为以下几个步骤: 1.点餐 2.窗口等待出餐 3.就餐 public static void main(String[] args) { // 是否还 阅读全文
posted @ 2023-03-07 21:58 一往而深, 阅读(30) 评论(0) 推荐(0) 编辑
摘要:Lock try..catch..finally实现锁的资源释放 在前面我们使用synchronized关键字实现了锁的效果,但是这个实现的锁是自动开启和自动释放的。在jdk5的时候java提供了Lock可以手动时候锁的关闭和释放 package com.cook.test; import java 阅读全文
posted @ 2023-03-07 20:40 一往而深, 阅读(39) 评论(0) 推荐(0) 编辑
摘要:思路:三个窗口卖票,我们需要设计3条线程表示都实现卖票的操作。并且因为我们的票数是一定的,所以我们需要将票数共享 package com.cook.test; //实现卖票操作(实现Runnable接口实现) public class MyThread3 implements Runnable { 阅读全文
posted @ 2023-03-07 20:02 一往而深, 阅读(20) 评论(0) 推荐(0) 编辑
摘要:并发和并行 继承Thread类 实现Rannble接口 利用Callable接口和Future接口 一段程序的运行过程是一个进程,而一个过程可以由多个线程组成。例如一个软件的运行是一个进程,而软件中的各种功能可以认为是构成进程的多个线程 在以前我们的单线程程序中,我们的代码在运行的时候会和内存进行交 阅读全文
posted @ 2023-03-07 19:05 一往而深, 阅读(158) 评论(0) 推荐(0) 编辑
摘要:虚方法表 方法重写的本质 我们关注一个类往往会把注意点放在它的成员变量上,而对于他的成员方法往往关注的比较少。在类的继承中我们知道成员方法往往都会被继承,但是对于成员方法往往会有许多疑惑 之前观点: 以前方法调用特点:当该类的对象调用一个方法,会先在本类中寻找该方法,如果本类中没有找到,会到父类中寻 阅读全文
posted @ 2023-02-25 22:38 一往而深, 阅读(508) 评论(0) 推荐(0) 编辑
摘要:类继承的基本规则:子类可以继承父类的成员变量和公有的方法,不能继承构造函数,对于私有的成员变量可以继承但是不能直接访问 那继承后子类的内存结构是怎样的呢? 我们在加载子类的字节码文件的时候,会将其父类的字节码文件也一并加载。在创建对象的时候子类的堆内存空间会储存一部分由父类继承过来的变量和方法 阅读全文
posted @ 2023-02-25 21:41 一往而深, 阅读(44) 评论(0) 推荐(0) 编辑
摘要:代码层面理解 内存层面理解 Static修饰的内容主要有以下3种访问规则: 代码层面理解 看下面一段代码 package Test; public class Student { public String name; public int age; public String address; p 阅读全文
posted @ 2023-02-25 21:12 一往而深, 阅读(37) 评论(0) 推荐(0) 编辑
摘要:一个对象的内存图 2个对象的内存图 数组的内存图 java是一门面向对象语言,并且java中万物皆对象,可以说对象是java代码的基本单元,所以说对于对象的内存分析显得很重要 一个对象的内存图 在创建对象时会执行以下操作: 其中的类的加载是在创建对象之前会判断该类是否加载,如果已经被加载,将不会被加 阅读全文
posted @ 2023-02-24 09:18 一往而深, 阅读(36) 评论(0) 推荐(0) 编辑
摘要:在字符输入流FileReader和字符输出流FileWriter的底层应用了缓存区技术用于提高读写效率,但是在字节流的基本流中并没有提高。java在为了弥补这一缺陷,在字节缓冲流中应用了这一技术进行优化 字节缓冲流 缓冲流中Io中的架构 我们可以看到字符流和字节流都有缓冲流,缓冲流属于高级流,所谓高 阅读全文
posted @ 2023-02-23 20:41 一往而深, 阅读(104) 评论(0) 推荐(0) 编辑
摘要:try...catch处理IO流异常的缺陷 try..catch...finally try-with-resource Java异常是Java提供的一种识别及响应错误的一致性机制,java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。 pdai try 阅读全文
posted @ 2023-02-22 09:43 一往而深, 阅读(32) 评论(0) 推荐(0) 编辑
摘要:FileReader的底层原理 FileWriter的底层原理 注意事项 FileReader的底层原理 字节输入流FileReader用于读出文件中的数据到内存中,而且每次只能读取一个字节。这其中内存和文件和被大量的访问,这无疑会很耗费时间,为了解决这个问题,java在设计FileReader时候 阅读全文
posted @ 2023-02-21 17:49 一往而深, 阅读(418) 评论(0) 推荐(0) 编辑
摘要:FileInputStream的基本用法 字节输出流的循环读取 文件的拷贝 文件拷贝的弊端和改进方案 FileInputStream的基本用法 package com; import java.io.*; public class ByteStreamDemo1 { public static vo 阅读全文
posted @ 2023-02-21 14:39 一往而深, 阅读(157) 评论(0) 推荐(0) 编辑
摘要:写入和读出的正确辨识 为什么不能用来写入中文 FileOutStream写数据的3种方式 解决续写和换行问题 我们的File类只能操作文件本身,而对于文件中的数据而无法操作,我们的IO流以此存在,可以将程序(内存)中的数据写入到文件中,也可以把文件中的数据读出到程序(内存)中 写入和读出的正确辨识 阅读全文
posted @ 2023-02-21 09:05 一往而深, 阅读(264) 评论(0) 推荐(0) 编辑
摘要:字符集和字符编码的概述 编码和解码 ASCII字符集&字符编码 GBK字符集&字符编码 Unicode字符集&字符编码 字符集和字符编码的概述 根据我们仅有的基础知识知道:我们的计算机所有的信息都是二进制表示的,即我们的计算机也只能储存二进制的数据。那为什么我们在现实生活中可以看到各种各样字符,并且 阅读全文
posted @ 2023-02-20 23:08 一往而深, 阅读(414) 评论(0) 推荐(0) 编辑
摘要:我们的File类可以对文件和文件夹本身进行一些类的操作,其中最重要的就是获取并遍历文件夹中的内容了 对此我们的java提供了以下的方法: 以上的各个方法都能实现对文件夹中的内容的获取操作,我们重点只需要掌握下面的一种即可 这个其实就是把获取文件夹里面的内容把他们放在一个File数组中,这个数组里面装 阅读全文
posted @ 2023-02-20 14:55 一往而深, 阅读(346) 评论(0) 推荐(0) 编辑
摘要:Math Random 大数处理类 Math Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。 隶属于java.lang包,该包由JVM自动导入 类定义 public final class Math(该类为最终类,不可被继承) 其构造方法被private 外部不能创 阅读全文
posted @ 2022-12-17 11:45 一往而深, 阅读(48) 评论(0) 推荐(0) 编辑
摘要:字符串存储的内存原理 ==的比较原理 字符串拼接的储存原理 StringBuilder提高效率的原理 字符串储存的内存原理 对于字符串的储存最大的特点应该就是其字符串不可变了,如果是直接赋值创建的字符串(类似String str="abc")会应用到常量池技术,如果常量池中没有该字符串将会new,如 阅读全文
posted @ 2022-12-17 10:55 一往而深, 阅读(55) 评论(0) 推荐(0) 编辑
摘要:StringJoiner类是jdk8新增的一个类,但是目前被用到的不多。其底层使用的依然是StringBuilder 看下面一个例子 可以看出同样是拼接出[1,2,3]StringJoiner比StringBuilder渐变的多,其实这也是StringJoiner类的经典应用了 即如果我们成的字符串 阅读全文
posted @ 2022-12-16 21:02 一往而深, 阅读(21) 评论(0) 推荐(0) 编辑
摘要:从String类说起 StringBuilder StringBuffer 从String说起 String是java定义的一个final类,不能被继承。也是我们日常生活中最常见到的类之一,可以实现对字符串的各种操作,但是但是他的对象不可变这个特性在某些情况下会带来很大的性能问题 看下面的一个过程: 阅读全文
posted @ 2022-12-16 20:37 一往而深, 阅读(303) 评论(0) 推荐(0) 编辑