Java
文章平均质量分 85
Java基础进阶
chaser&upper
西电CS研究生,CSDN专家博主&人工智能领域优质创作者,全网粉丝20w+,热爱生活,喜欢分享,欢迎您与我交流!商务合作,请私信沟通。
展开
-
秋招备战:JavaIO基础知识总结(六)
IO 流在 Java 中分为输入流和输出流,而根据数据的处理方式又分为字节流和字符流。Java IO 流的 40 多个类都是从如下 4 个抽象类基类中派生出来的。ReaderWriter从 Java 9 开始,len不过,一般我们是不会直接单独使用,通常会配合(字节缓冲输入流,后文会讲到)来使用。像下面这段代码在我们的项目中就比较常见,我们通过读取输入流所有字节并将其直接赋值给一个String对象。用于读取指定类型数据,不能单独使用,必须结合其它流,比如。原创 2024-07-05 22:12:49 · 793 阅读 · 0 评论 -
秋招备战:Java并发常见面试题总结(五)
Executor框架的使用示意图主线程首先要创建实现Runnable或者Callable接口的任务对象。把创建完成的实现RunnableCallable接口的 对象直接交给执行:)或者也可以把Runnable对象或Callable对象提交给执行(或如果执行将返回一个实现Future接口的对象(我们刚刚也提到过了执行execute()方法和submit()方法的区别,submit()会返回一个FutureTask 对象)。由于 FutureTask实现了Runnable,我们也可以创建。原创 2024-07-04 15:59:32 · 858 阅读 · 0 评论 -
一口气说出 Java 6 种延时队列的实现方法 (面试官也得服)
原文地址这篇文章主要介绍了一口气说出 Java 6 种延时队列的实现方法, 文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们来一起学习学习吧!原创 2024-06-29 22:14:37 · 1725 阅读 · 0 评论 -
秋招备战:Java重点知识(二)
方法的定义可能会用到很多程序设计语言(比如 C++、 Pascal )提供了两种参数传递的方式,不过,在 Java 中只有值传递。Java 对引用类型的参数传递的还是值,不过,这个值是实参的地址罢了!也就是说change方法的参数拷贝的是arr(实参)的地址,因此,它和arr指向的是同一个数组对象。这也就说明了为什么方法内部对形参的修改会影响到实参。swap方法的参数person1和person2只是拷贝的实参xiaoZhang和xiaoLi的地址。因此,person1和person2。原创 2024-06-26 16:35:41 · 703 阅读 · 0 评论 -
秋招备战:Java基础八股总结篇(一)
简单来说,引用拷贝就是两个不同的引用指向同一个对象。原创 2024-06-20 22:12:34 · 595 阅读 · 0 评论 -
快速查漏补缺Java基础知识(十四)单元测试&注解
对部分代码进行测试。自定义注解单独存在是没有什么意义的,一般会跟反射结合起来使用,会用发射去解析注解。针对于注解,只要掌握会使用别人已经写好的注解即可。关于注解的解析,一般是在框架的底层已经写好了。原创 2023-10-19 18:53:55 · 288 阅读 · 0 评论 -
快速查漏补缺Java基础知识(十三)log日志&xml&类加载器
万维网联盟(W3C)万维网联盟(W3C)创建于1994年,又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。建立者: Tim Berners-Lee (蒂姆·伯纳斯·李)。是Web技术领域最具权威和影响力的国际中立性技术标准机构。到目前为止,W3C已发布了200多项影响深远的Web技术标准及实施指南,如广为业界采用的超文本标记语言HTML(标准通用标记语言下的一个应用)、可扩展标记语言XML(标准通用标记语言下的一个子集)原创 2023-10-19 18:51:21 · 216 阅读 · 0 评论 -
一文搞定Java中的枚举
而枚举中定义的枚举常量,变成了相应的 public static final 属性,而且其类型就抽象类的类型,名字就是枚举常量的名字。位向量是一种极为高效的位运算操作,由于直接存储和操作都是 bit,因此 EnumSet 空间和时间性能都十分可观,足以媲美传统上基于 int 的 “位标志” 的运算,关键是我们可像操作 set 集合一般来操作位运算。枚举的主要目的是加强编译时类型的安全性。枚举在日常编码中几乎是必不可少的,如何用好,如何用精,还需要基础知识的铺垫,本文也正是基于此带大家从头到尾梳理了一遍。原创 2023-10-19 18:17:07 · 1746 阅读 · 0 评论 -
快速查漏补缺Java基础知识(十二)反射&动态代理
是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能够调用它的任意属性和方法; 这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。通俗的理解:(掌握)利用反射创建的对象可以无视修饰符调用类里面的内容可以跟配置文件结合起来使用,把要创建的对象信息和方法写在配置文件中。读取到什么类,就创建什么类的对象读取到什么方法,就调用什么方法此时当需求变更的时候不需要修改代码,只要修改配置文件即可。原创 2023-10-16 21:16:33 · 87 阅读 · 0 评论 -
快速查漏补缺Java基础知识(十一)网络编程
计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统网络编程在网络通信协议下,不同计算机上运行的程序,可以进行数据传输。原创 2023-10-16 17:40:35 · 106 阅读 · 0 评论 -
快速查漏补缺Java基础知识(十)多线程02
当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。线程对象在不同的时期有不同的状态。那么Java中的线程存在哪几种状态呢?Java中的线程/* 新建 */NEW ,/* 可运行状态 */RUNNABLE ,/* 阻塞状态 */BLOCKED ,/* 无限等待状态 */WAITING ,/* 计时等待 *//* 终止 */TERMINATED;// 获取当前线程的状态通过源码我们可以看到Java中的线程存在6种状态,每种线程状态的含义如下。原创 2023-10-16 14:36:04 · 182 阅读 · 0 评论 -
快速查漏补缺Java基础知识(十)多线程
概述生产者消费者模式是一个十分经典的多线程协作的模式,弄懂生产者消费者问题能够让我们对多线程编程的理解更加深刻。所谓生产者消费者问题,实际上主要是包含了两类线程: 一类是生产者线程用于生产数据 一类是消费者线程用于消费数据为了解耦生产者和消费者的关系,通常会采用共享的数据区域,就像是一个仓库生产者生产数据之后直接放置在共享数据区中,并不需要关心消费者的行为消费者只需要从共享数据区中去获取数据,并不需要关心生产者的行为Object类的等待和唤醒方法方法名说明。原创 2023-10-09 21:29:51 · 95 阅读 · 0 评论 -
Java Properties使用介绍
【代码】Java Properties使用介绍。原创 2023-10-05 22:04:18 · 101 阅读 · 0 评论 -
快速查漏补缺Java基础知识(九)高级IO流
缓冲流,也叫高效流,是对4个基本的FileXxx字节缓冲流字符缓冲流缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。默认缓冲流大小是8192Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该对象的数据对象的类型和对象中存储的属性等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。对象的数据对象的类型和。原创 2023-10-05 20:16:13 · 171 阅读 · 0 评论 -
快速查漏补缺Java基础知识(八)IO(异常&File&综合案例)
我们说了Java中不同的异常类,分别表示着某一种具体的异常情况,那么在开发中总是有些异常情况是SUN没有定义好的,此时我们根据自己业务的异常情况来定义异常类。,例如年龄负数问题,考试成绩负数问题。在上述代码中,发现这些异常都是JDK内部定义好的,但是实际开发中也会出现很多异常,这些异常很可能在JDK中没有定义过,例如年龄负数问题,考试成绩负数问题.那么能不能自己定义异常呢?在开发中根据自己业务的异常情况来定义异常类.自定义一个业务逻辑异常:。一个登陆异常类。自定义一个编译期异常: 自定义类 并继承于。原创 2023-10-05 19:42:45 · 112 阅读 · 0 评论 -
快速查漏补缺Java基础知识(七)IO流(字节流&字符流)
生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrl+s,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键盘、内存、硬盘、外接设备等等。我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input和输出output,即流向内存是输入流,流出内存的输出流。Java中I/O操作主要是指使用java.io包下的内容,进行输入、输出操作。输入也叫做读取数据,输出也叫做作写出数据。原创 2023-10-01 20:03:53 · 83 阅读 · 0 评论 -
快速查漏补缺Java基础知识(五)
迭代器,集合的专用遍历方式Iterator iterator(): 返回此集合中元素的迭代器,通过集合对象的iterator()方法得到Iterator中的常用方法 boolean hasNext(): 判断当前位置是否有元素可以被取出 E next(): 获取当前位置的元素,将迭代器对象移向下一个索引位置细节点注意:1.报错NoSuchElementException2.迭代器遍历完毕,指针不会复位3.循环中只能用一次next方法4.迭代器遍历时,不能用集合的方法进行增加或者删除利用forE原创 2023-09-22 19:18:36 · 119 阅读 · 0 评论 -
快速查漏补缺Java基础知识(六)
演员类Actor已经提供,里面有一个成员变量,一个带参构造方法,以及成员变量对应的get/set方法。代码中的逻辑都有两面性,如果我们只知道了其中的A面,而且代码中还发现了有变量可以控制两面性的发生。 在传递数据的时候,省的我们自己创建数组并添加元素了,JDK底层帮我们自动创建数组并添加元素了。如果是最坏情况,添加了8个元素,这8个元素形成了链表,此时TreeMap的效率要更高。Lambda表达式被对象的实例方法替代的时候,它的形式参数全部传递给该方法作为参数。原创 2023-09-22 15:58:52 · 106 阅读 · 0 评论 -
快速查漏补缺Java基础知识(四)
数据结构是数据存储的方式,算法是数据计算的方式。所以在开发中,算法和数据结构息息相关。今天的讲义中会涉及部分数据结构的专业名词,如果各位铁粉有疑惑,可以先看一下哥们后面录制的数据结构,再回头看算法。原创 2023-09-15 22:10:44 · 101 阅读 · 0 评论 -
快速查漏补缺Java基础知识(三)时间类
java.util.Date`类 表示特定的瞬间,精确到毫秒。继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,我们重点看以下两个构造函数:从运行程序的此时此刻到时间原点经历的毫秒值,转换成Date对象,分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。:将指定参数的毫秒值date,转换成Date对象,分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。原创 2023-09-15 17:27:59 · 149 阅读 · 0 评论 -
快速查漏补缺Java基础知识(二)
类与接口的关系为实现关系,即类实现接口,该类可以称为接口的实现类,也可以称为接口的子类。实现的动作类似继承,格式相仿,只是关键字不同,实现使用implements关键字。语法示例:“.” : 匹配任何字符。“\d”:任何数字[0-9]的简写;“\D”:任何非数字[^0-9]的简写;“\s”: 空白字符:[ \t\n\x0B\f\r] 的简写“\S”: 非空白字符:[^\s] 的简写“\w”:单词字符:[a-zA-Z_0-9]的简写“\W”:非单词字符:[^\w]原创 2023-09-14 23:55:51 · 110 阅读 · 0 评论 -
快速查漏补缺Java基础知识(一)
多态: 是指同一行为,具有多个不同表现形式。从上面案例可以看出,Cat和Dog都是动物,都是吃这一行为,但是出现的效果(表现形式)是不一样的。前提【重点】有继承或者实现关系方法的重写【意义体现:不重写,无意义】父类引用指向子类对象【格式体现】父类类型:指子类对象继承的父类类型,或者实现的父接口类型。abstract是抽象的意思,用于修饰方法方法和类,修饰的方法是抽象方法,修饰的类是抽象类。原创 2023-09-12 22:16:46 · 126 阅读 · 0 评论 -
【强烈推荐】浅谈Java中String.equals()和==的区别
浅谈Java中String.equals和==的区别1. 基本数据类型&引用类型2. equals&==2.1 "=="操作符的作用2.2 equals的作用3. 测试3.1 String作为一个引用类型来使用3.2 String作为一个基本类型来使用4. 剖析1. 基本数据类型&引用类型八大基本数据类型:Byte,short,int,long,double,folat,boolean,char,其中占一个字节的是byte,short和char占两个字节,int,float占四原创 2021-10-12 22:02:43 · 355 阅读 · 0 评论 -
Java 学习笔记
Java学习笔记进制相关十六进制十进制转十六进制负数转十六进制八进制二进制快捷使用基本概念VectorfinalCharacterMap进制相关十六进制十六进制(英文名称:Hexadecimal),是计算机中数据的一种表示方法。同我们日常生活中的表示法不一样。它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15;N进制的数可以用0~(N-1)的数表示,超过9的用字母A-F。0xf表示十进制数15在java中以0x开头的数表示十六进制数(如0x1原创 2021-10-12 21:42:07 · 355 阅读 · 0 评论 -
Intellij IDEA带参数运行Java main方法
IDEA 附带参数运行main方法1. 首先打开Edit Configuration2. 然后在Program arguments 加参数即可1. 首先打开Edit Configuration2. 然后在Program arguments 加参数即可感觉比eclipse简单点!加油!感谢!努力!原创 2021-09-28 14:24:26 · 1524 阅读 · 0 评论 -
JDBC 核心技术卷
JDBC 核心技术卷第1章:JDBC概述1.1 数据的持久化1.2 Java中的数据存储技术1.3 JDBC介绍1.4 JDBC体系结构1.5 JDBC程序编写步骤第2章:获取数据库连接2.1 要素一:Driver接口实现类2.1.1 Driver接口介绍2.1.2 加载与注册JDBC驱动2.2 要素二:URL2.3 要素三:用户名和密码2.4 数据库连接方式举例2.4.1 连接方式一2.4.2 连接方式二2.4.3 连接方式三2.4.4 连接方式四2.4.5 连接方式五(最终版)第3章:使用Prepare原创 2021-09-01 16:51:47 · 414 阅读 · 0 评论 -
JDBC 万字长文总结【回炉重造】
JDBC-万字长文总结1. 概述1.1 什么是JDBC1.2 JDBC API1.3 JDBC 可以做什么1.4 JDBC程序编写步骤2. 演示完整步骤2.1 引入JDBC驱动程序2.2 加载并注册驱动2.2.1 Class.forName( )2.2.2 服务提供者框架2.3 获取数据库链接2.4 操作或访问数据库2.4.1 Statement2.4.2 ResultSet2.5 释放资源3. 封装JDBCUtils4. PreparedStatement4.1 Statement的不足4.2 Prepa原创 2021-08-31 10:41:07 · 492 阅读 · 0 评论 -
超简易的轮播图(JavaScript)
简易的轮播图展示代码展示代码<!DOCTYPE><html lang="en"><head> <meta charset="UTF-8"> <title>轮播图</title> <script> var num=1; function fun(){ //获取对象 var imgChange=document.getElementById("image原创 2021-06-28 15:43:34 · 341 阅读 · 0 评论 -
小白的我当年最得意的登录界面(JavaScript)
JavaScript 登录界面(初学)前言原始无美化无内容校验美化加校验功能前言大一时,小白的我挺喜欢前端的,感觉设计出来好看的界面,让人很兴奋,很有收获感。但我没能坚持下去,入门一点点,便又丢入我的电脑杂乱无章的文件中。过去一年多了,现在看见了,忘得也是一干二净了,想着拿出来,存到我的博客里,我觉得将来某天我还是要重新深入学习Web的。我的踩坑经验:学一样东西,一定要坚持下去,万万不能,东放一枪西打一棒 或者 轻易放弃,随大流。原始无美化<html> <head&g原创 2021-06-28 15:27:18 · 561 阅读 · 2 评论 -
搞定Java中I/O输入输出&重定向
Java&I/OFileReaderFileInputStreamPrintStreamOutputStreamWriterObjectOutputStream重定向 (Redirect)FileReader阅读字符文件的便利类。该类的构造函数假定默认字符编码和默认字节缓冲区大小是适当的。要自己指定这些值,请在FileInputStream上构造一个InputStreamReader。 FileReader用于读取字符流。要读取原始字节流,请考虑使用FileInputStream 。原创 2021-06-10 13:34:59 · 727 阅读 · 1 评论 -
ACM必备的快速输入输出(Java)
ACMer手写Input类BufferedReaderStringTokenizer手写Input类BufferedReader从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取。可以指定缓冲区大小,或者可以使用默认大小。 默认值足够大,可用于大多数用途。通常,由读取器做出的每个读取请求将引起对底层字符或字节流的相应读取请求。StringTokenizer字符串tokenizer类允许应用程序将字符串拆分成令牌。StreamTokenizer化方法比StreamTokeni原创 2021-06-10 12:41:45 · 1032 阅读 · 3 评论 -
Java 数据格式化&小数点后保留指定位数
小数点后保留指定n位数DecimalFormatNumberFormatFormatterString.formatprintf()BigDecimal构造方法具体示例小数点后保留指定n位数printf()BigDecimalDecimalFormat使用 DecimalFormat,但是只能保留指定位数.DecimalFormat d = new DecimalFormat("0.000");double x = 3.45125;System.out.println(d.format(x));原创 2021-05-17 18:28:56 · 3905 阅读 · 2 评论 -
Java 详解数字格式化(NumberFormat&DecimalFormat)
NumberFormat&DecimalFormat前言NumberFormat获取NumberFormat实例使用示例DecimalFormat获取DecimalFormat实例Pattern(模式)使用示例通用格式对于DecimalFormat类的使用,学了之后,也放了很久,不经常用,忘得差不多了,最近比赛用到数据格式化,小数点保留指定位数,所以重新拾起来,复习一下。前言查看官方 API 发现:Java对文字,数字的格式化,是有一个公共的父类的 Format。NumberForma原创 2021-05-17 16:47:55 · 10819 阅读 · 1 评论 -
Java中 forEach() 和 Iterator 与 增强for循环 的那些事儿
forEach & Iterator & 增强for 循环List.forEach()示例forEach()的底层实现小结Iterator迭代器简介Iterator应用增强for 循环简介使用格式注意事项Map的迭代器Map.EntryList.forEach()示例 // create some Persons objectsPersons p1 = new Persons("B", 10);Persons p2 = new Persons("D", 20);Persons p3原创 2021-05-04 21:48:40 · 3114 阅读 · 4 评论 -
Java 手撕HashMap
Map的相关学习HashMapHashCode与Equals关系重写HashCode与Equals方法Map的迭代器Map.EntryHashMapMap.LinkHashMap不允许重复,记录顺序java.util.Hashtable底层是一个哈希表,是一个线程的安全集合,慢(不可以存Null)HashMap底层哈希表,多线程不安全的,快。可以存取Null类似还有 TreeMap:按照默认按照 key递增排序 entry实体。当然也可以重写比较器,可以参考前面文章。HashCode与Equa原创 2021-05-04 21:40:49 · 527 阅读 · 1 评论 -
Java Arrays.asList() 的避雷
浅谈asList的使用Arrays.asList()快速创建List使用Java8 stream创建Arrays.asList()1.Arrays.asList()将数组转换为集合后,底层其实还是数组,它返回的是Arrays的一个内部类,体现了适配器模式。…2.传递的数组必须是对象数组,而不是基本类型。…3.当传入一个原生数据类型数组时,Arrays.asList()的真正得到的参数就不是数组中的元素,而是数组对象本身!此时List 的唯一元素就是这个数组。…4.使用集合的修改方法:add原创 2021-05-04 19:33:36 · 578 阅读 · 0 评论 -
Java Comparator comparingInt() 的使用
comparingInt简介自定义排序参数优先队列,重写比较器简介static <T> Comparator<T> comparingInt(ToIntFunction<? super T> keyExtractor)接受提取的一个函数int从类型分类键T ,并返回一个Comparator ,通过该排序关键字进行比较。如果指定的功能也可串行化,则返回的比较器是可序列化的。 (摘自API)参数类型T - 要比较的元素的类型参数keyExtracto原创 2021-05-04 17:09:56 · 23941 阅读 · 8 评论 -
Java-Lambda表达式
Java8新特性定义组成应用示例1示例2定义把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。匿名——我们说匿名,是因为它不像普通的方法那样有一个明确的名称:写得少而想得多。函数——我们说它是函数,是因为Lambda函数不像方法那样属于某个特定的类。但和方法一样,Lambda有参数列表、函数主体、返回类型,还可能有可以抛出的异常列表。传递——Lambda表达式可以作为参数传递给方法或存储在变量中。简洁原创 2021-05-02 17:05:50 · 389 阅读 · 0 评论 -
Java课程实习-校园导航系统
校园导航系统地点信息存储效果展示部分代码展示2020年 Java & 数据结构 综合性课程实习,由于能力欠缺,参考大神学长的代码,加以学习,并进一步改进。地点信息存储使用.txt文件存储地点信息,坐标(对应图片的pixel值)使用.txt存储地点的关系需要运用数据结构 图的知识,以及迪杰斯特拉算法效果展示部分代码展示...原创 2021-02-23 21:05:36 · 4910 阅读 · 129 评论 -
Java课程实习-学生信息管理系统
学生信息管理系统学生数据如何存储效果展示部分代码展示备注2020年 Java & 数据结构 综合性课程实习,由于能力欠缺,参考网上代码,加以学习,并进一步改进。学生数据如何存储思路一: 将学生信息以空格分隔,按行存储到.txt文件中,使用时将所有数据按行读取 存储。思路二: 将学生对象的集合序列化写入文件中,使用时将对象反序列化出来。思路三: 使用JDBC+数据库,读取数据。效果展示部分代码展示备注有些代码冗余较大,且效率不高,需要参考,指教的大佬,请私信或评原创 2021-02-23 20:44:43 · 779 阅读 · 4 评论