
Java学习笔记
文章平均质量分 84
java学习记录,记录自己不断成为优秀程序员的道路,终身学习,终身成长。
啊道~
不断努力变优秀。
展开
-
正则表达式大全
电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号)((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)匹配格式:11位手机号码3-4位区号,7-8位直播号码,1-4位分机号如:12345678901、1234-12345678-1234“^\d+$”原创 2021-06-26 21:11:13 · 284 阅读 · 0 评论 -
JavaScript高级学习笔记(详解)DOM BOM
JavaScript高级学习笔记JavaScript:ECMAScript:BOM:DOM:事件DOM简单学习:为了满足案例要求功能:控制html文档的内容获取页面标签(元素)对象:Elementdocument.getElementById(“id值”):通过元素的id获取元素对象操作Element对象:修改属性值:明确获取的对象是哪一个?查看API文档,找其中有哪些属性可以设置修改标签体内容:属性:innerHTML获取元素对象使用in原创 2021-01-20 17:06:24 · 167 阅读 · 0 评论 -
一文读懂JavaScript基础学习笔记
1. JavaScript基础JavaScript:*** 概念: 一门客户端脚本语言运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎脚本语言:不需要编译,直接就可以被浏览器解析执行了***** 功能:**可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。*** JavaScript发展史**:1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为 : C-- ,后来更名为:原创 2021-01-18 13:01:26 · 318 阅读 · 0 评论 -
Java运用注解反射编写简单测试框架
测试一个计算器类,把异常类型次数其他异常信息自动生成BUG文件/** * 计算器类 */public class Calculator { //加法 @Check public void add(){ System.out.println("1+0="+(1+0)); } //减法 @Check public void sub(){ System.out.println("1-0="+(1-0));原创 2020-12-23 16:43:20 · 280 阅读 · 4 评论 -
Java反射中常用方法(详解)
文章目录获取Class对象的方式:获取对象成员变量们获取构造方法们获取构造方法们获取成员方法们:获取Class对象的方式:Class.forName(“全类名”):将字节码文件加载进内存,返回Class对象类名.class:通过类名的属性class获取对象.getClass():getClass()方法在Object类中定义着。 public static void main(String[] args)throws Exception { //1.Class.for.原创 2020-12-23 16:39:09 · 125 阅读 · 0 评论 -
Java实现BS版本TCP服务器与客户端交互
创建BS版本TCP服务器import java.io.*;import java.net.ServerSocket;import java.net.Socket;public class TCPServerThread { public static void main(String[] args)throws IOException { //创建一个服务器ServerSocket,和系统要指定的端口号 ServerSocket server = new原创 2020-12-23 16:28:44 · 252 阅读 · 1 评论 -
Java实现文件上传案例客户端与服务器
文件上传案例的客户端知识点补充文件上传案例的客户端:读取本地文件,上传到服务器,读取服务器回写的数据明确:数据源G:\网图\a.png目的地:服务器实现步骤:1.创建一个本地字节输入流FileInputStream对象,构造方法中绑定要读取的数据源2.创建一个客户端Socket对象,构造方法中绑定服务器的IP地址和端口号3.使用Socket中的方法getOutputStream,获取网络字节输出流OutputStream对象4.使用本地字节输入流FileInputStream对象中的方法原创 2020-12-23 16:26:33 · 288 阅读 · 1 评论 -
java常用IO流操作详解(二)
IO流常用详解,缓冲流,对象序列化流,打印流文章目录一、缓冲流InputStreamReader二、缓冲流OutputStreamWriter三、对象序列化流ObjectOutputStream四、对象反序列化流ObjectInputStream五、打印流一、缓冲流InputStreamReaderjava.io.InputStreamReader extends ReaderInputStreamReader:是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。(解码原创 2020-12-23 16:15:44 · 127 阅读 · 0 评论 -
Java缓冲流实现文件复制
文件复制练习:一读一写明确:数据源: c:\1.jpg数据的目的地: d:\1.jpg文件复制的步骤:1.创建字节缓冲输入流对象,构造方法中传递字节输入流2.创建字节缓冲输出流对象,构造方法中传递字节输出流3.使用字节缓冲输入流对象中的方法read,读取文件4.使用字节缓冲输出流中的方法write,把读取的数据写入到内部缓冲区中5.释放资源(会先把缓冲区中的数据,刷新到文件中)public class Demo02CopyFile { public static void mai原创 2020-12-23 15:59:05 · 473 阅读 · 1 评论 -
教你String反转输出
废话不说直接上代码public class 字符反转输出 { public static void main(String[] args) { String name = "孙悟空"; System.out.println("反转前 "+name); String rename = new StringBuffer(name).reverse().toString(); System.out.println("反转后 "+rena原创 2020-12-20 23:15:30 · 283 阅读 · 0 评论 -
java常用IO流操作详解(一)
Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中。文章目录一.字节输入流1.标题字节输入流一次读取多个字节的方法:二.字节输出流1.字节输出流追加续写换新2.字节输出流一次写入多个字节三.字符输入流四.字符输出流1.字符输出流写数据的其他方法2.字符输出流的续写和换行3. flush方法和close方法的区别五.综合运用文件复制六.IO流中的异常1.JDK7的新特性2.JDK9的新特性七.Properties集合存储数据1.P原创 2020-12-14 17:56:55 · 556 阅读 · 1 评论 -
java单词随机产生
直接上代码用javagui实现随机单词答题游戏可以看着篇随机单词答题游戏(java gui)//随机产生单词 private String RandomWords() {//产生随机单词 String[] s = {"good", "cheer", "strive", "optimistic", "hello", "word", "tercher", "student", "book", "genius", "handsome", "beautif原创 2020-12-10 09:35:39 · 1691 阅读 · 1 评论 -
一文读懂File类
java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。文章目录File类一、绝对路径与相对路径二、构造方法三、 获取功能的方法四、File类判断功能的方法五、File类创建删除功能的方法六、File类遍历文件夹目录功能方法File类java.io.File类文件和目录路径名的抽象表示形式。java把电脑中的文件和文件夹(目录)封装为了一个File类,我们可以使用File类对文件和文件夹进行操作我们可以使用File类的方法创建一个文件/文件夹原创 2020-12-09 00:10:43 · 254 阅读 · 1 评论 -
多线程学习笔记——第五篇(线程优先级)
线程优先级在Java程序设计语言中,每一个线程有一个优先级。默认情况下,一个线程会继承构造它的那个线程的优先级。可以用setPriority方法提高或降低在何一个线程的优先级。可以将优先级设置为MIN PRIORITY (在Thread类中定义为1)与MXPRIORIT定义为10)之间的任何值。NORMTPRIORITY定义为5。每当线程调度器有机会选择新线程时,它首先选择具有较高优先级的线程。但是,线程优先级高度依赖于系统。当虚拟机依赖于宿主机平台的线程实现时, Java线程的优先级会映射到宿主机原创 2020-12-07 16:53:55 · 166 阅读 · 1 评论 -
多线程学习笔记——第四篇(线程池)
我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低 系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?线程池的概念线程池:其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作, 无需反复创建线程而消耗过多资源。合理利用线程池能够带来三个好处:原创 2020-12-07 16:32:12 · 98 阅读 · 0 评论 -
java实现斐波那契数列
直接上代码//除了前面两项 后面等于前两项之和public class 斐波那契数列 { public static void main(String[] args) { System.out.println("第8为:"+fs1(8)); System.out.println("第8为:"+fs2(7)); } //方法一 public static int fs1(int n){ int a,b;原创 2020-12-04 17:54:46 · 140 阅读 · 1 评论 -
java求最小公倍数(亲测秒懂)
直接上代码public static int gcd(int a,int b){int r;while ((r=a%b)!=0){a=b;b=r;}return b;}原创 2020-12-04 17:48:37 · 1111 阅读 · 2 评论 -
(亲测包看懂)BoxLayout箱式布局管理器
BoxLayout,箱式布局管理器。它把若干组件按水平或垂直方向依次排列放置。Swing 提供了一个实现了 BoxLayout 的容器组件Box。使用 Box 提供的静态方法,可快速创建水平/垂直箱容器(Box),以及填充组件之间空隙的不可见组件。用水平箱和垂直箱的组合嵌套可实现类似于 GridBagLayout 的效果,但没那么复杂。
当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。在线程的生命周期中, 有几种状态呢?在API中 java.lang.Thread.State 这个枚举中给出了六种线程状态: 这里先列出各个线程状态发生的条件,下面将会对每种状态进行详细解析线程状态概括我们不需要去研究这几种状态的实现原理,我们只需知道在做线程操作中存在这样的状态。那我们怎么去理解这几 个状态呢,新建与被终止还是很容易理解的,我们就研究一下线程从Runnable(可运行)状态与非运行状态之间 的转换问题。原创 2020-11-29 19:27:24 · 106 阅读 · 1 评论 -
多线程学习笔记——第三篇(线程安全)
线程安全:当多个线程访问某个方法时,不管你通过怎样的调用方式或者说这些线程如何交替的执行,我们在主程序中不需要去做任何的同步,这个类的结果行为都是我们设想的正确行为,那么我们就可以说这个类是线程安全的。如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样 的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 我们通过一个案例,演示线程的安全问题: 电影院要卖票,我们模拟电影院的卖票过程。假设要播放的电影是 “葫芦娃大战奥特曼”,本次电影的座位共100个原创 2020-11-29 16:09:15 · 93 阅读 · 2 评论 -
多线程学习笔记——第一篇(线程)
创建多线程创建多线程程序的第一种方式:创建Thread类的子类java.lang.Thread类:是描述线程的类,我们想要实现多线程程序,就必须继承Thread类实现步骤:1.创建一个Thread类的子类 2.在Thread类的子类中重写Thread类中的run方法,设置线程任务(开启线程要做什么?) 3.创建Thread类的子类对象 4.调用Thread类中的方法start方法,开启新的线程,执行run方法 void star原创 2020-11-25 23:06:25 · 160 阅读 · 1 评论 -
Java异常
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录异常的概念一、 throw关键字二、throws关键字使用三、try...catch异常处理四、多个异常处理异常的概念java.lang.Throwable:类是 Java 语言中所有错误或异常的超类。Exception:编译期异常,进行编译(写代码)java程序出现的问题RuntimeException:运行期异常,java程序运行过程中出现的问题异常就相当于程序得了一个小毛病(感冒,发烧),把异常处理掉,程序可以继续原创 2020-11-19 18:56:45 · 1729 阅读 · 1 评论 -
异常的产生过程和解析
原创 2020-11-16 17:23:37 · 243 阅读 · 2 评论 -
图文看懂常见数据结构
数据结构有什么用?现实世界的存储,我们使用的工具和建模。每种数据结构有自己的优点和缺点,想想如果Google的数据用的是数 组的存储,我们还能方便地查询到所需要的数据吗?而算法,在这么多的数据中如何做到最快的插入,查找,删 除,也是在追求更快。文章目录前言常见的数据结构栈队列数组链表红黑树前言常见的数据结构数据存储的常用结构有:栈、队列、数组、链表和红黑树。我们分别来了解一下:栈栈:stack,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在其 他任何位置原创 2020-10-29 16:54:04 · 461 阅读 · 1 评论 -
教你学会Java泛型的使用方法
泛型是程序设计语言的一种特性,允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明。文章目录前言一、泛型是什么?二、定义和使用含有泛型的类三、定义和使用含有泛型的方法三、定义和使用含有泛型的接口四、泛型的通配符五、通配符高级使用----受限泛型前言泛型如何用?泛型的类?泛型的方法?泛型的接口?一、泛型是什么?泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明。各种程序设计语言和其编译器原创 2020-10-27 21:39:12 · 595 阅读 · 1 评论 -
干货|一文读懂Java 增强for循环
增强for循环(也称for each循环)是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作文章目录前言一、增强for循环二、使用格式三、代码示例前言一、增强for循环高级for循环,专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,想了解Iterator迭代器点击我另一篇文章Iterator迭代器实现原理与使用Collectionextends Iterable原创 2020-10-26 21:24:16 · 700 阅读 · 2 评论 -
干货|一文读懂Java Iterator迭代器实现原理与使用
迭代器(iterator)有时又称光标(cursor)是程序设计的软件设计模式,可在容器对象(container,例如链表或数组)上遍访的接口,设计人员无需关心容器对象的内存分配的实现细节,只要拿到这个对象,使用迭代器就可以遍历这个对象的内部文章目录前言一、迭代器二、迭代器使用步骤三、代码示例四、迭代器原理前言ArrayList使用内部类实现了Iterator接口,并提供iterator方法来获取迭代器对象,可以通过它来遍历顺序表一、迭代器java.util.Iterator接口:迭代器(对集原创 2020-10-26 21:04:20 · 1484 阅读 · 1 评论 -
干货|一文读懂Java Collection集合概述和常用方法
文章目录前言一、集合框架二、Collection集合常用方法1. public boolean add(E e): 把给定的对象添加到当前集合中2.public boolean remove(E e): 把给定的对象在当前集合中删除3.public boolean contains(E e): 判断当前集合中是否包含给定的对象4.public boolean isEmpty(): 判断当前集合是否为空5.public int size(): 返回集合中元素的个数6.public Object[] toA.原创 2020-10-26 16:59:16 · 510 阅读 · 1 评论 -
干货|一文读懂 Java Calendar类
java.util.Calendar类:日历类Calendar类时间文章目录前言一 getInstance() 使用默认时区和语言环境获得一个日历。二 get(int field)返回给定日历字段的值。三 set(int field, int value):将给定的日历字段设置为给定值。四 add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量五 getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Dat原创 2020-10-25 07:56:29 · 334 阅读 · 2 评论 -
干货|一文读懂 Java System类常用方法
java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作文章目录一、currentTimeMillis():返回以毫秒为单位的当前时间。二、arraycopy()将数组中指定的数据拷贝到另一个数组中。java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有:public static long currentTimeMillis():返回以毫秒为单位的当前时间。public原创 2020-10-24 16:57:44 · 415 阅读 · 1 评论 -
干货|一文读懂 Java StringBuilder类
StringBuilder 类从名字就知道其是字符串对象生成器,专门用于字符串需要动态创建的场合,提高内存使用效率。文章目录一、StringBuilder有什么用?二、StringBuilder构造方法:三、StringBuilder常用方法append:四、StringBuilder常用方法toString:一、StringBuilder有什么用?StringBuilder类从名字上就知道其是字符串对象生成器,专门用于字符串需要动态创建的场合,提高内存使用效率。Java中还提供了与其类似的Stri原创 2020-10-24 16:44:35 · 286 阅读 · 1 评论 -
干货|一文读懂 Java包装类概念与使用
为了让基本数据类型也具备对象的特性, Java 为每个基本数据类型都提供了一个包装类,这样我们就可以像操作对象那样来操作基本数据类型。提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录为了让基本数据类型也具备对象的特性, Java 为每个基本数据类型都提供了一个包装类,这样我们就可以像操作对象那样来操作基本数据类型。包装类的概念一、装箱二、拆箱三、自动拆箱与自动装箱四、 基本类型与字符串类型之间的相互转换包装类的概念基本数据类型使用起来非常方便,但是没有对应的方法来操作这些原创 2020-10-24 16:12:24 · 354 阅读 · 1 评论