压缩成.zip代码如下:java/压缩成ZIP@paramsrcDir压缩文件夹路径@paramout压缩文件输出流@throwsRuntimeException压缩失败会抛出运行时异常/publicstaticvoidtoZip(StringsrcDir,OutputStreamout)throwsRuntimeException{longstart=System.currentTimeMill
缓冲流,也叫高效流,是对4个基本的FileXxx流的增强,所以也是4个流,按照数据类型分类:字节缓冲流:BufferedInputStream,BufferedOutputStream字符缓冲流:BufferedReader,BufferedWriter缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。?字节缓冲流?构造
JDK7前处理之前的练习,我们一直把异常抛出,而实际开发中并不能这样处理,建议使用try...catch...finally代码块,处理异常部分,代码使用演示:javapublicclassHandleException1{publicstaticvoidmain(Stringargs){//声明变量FileWriterfw=null;try{//创建流对象fw=newFileWriter("fw
当使用字节流读取文本文件时,可能会有一个小问题。就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储。所以Java提供一些字符流类,以字符为单位读写数据,专门用于处理文本文件。字符输入流【Reader】java.io.Reader抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存中。它定义了字符输入流的基本共性功能方法。publicvoidclose(
一切皆为字节一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。字节输出流【OutputStream】java.io.OutputStream抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地。它定义了字节输
概述java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。构造方法publicFile(Stringpathname):通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。publicFile(Stringparent,Stringchild):从父路径名字符串和子路径名字符串创建新的File实例。publicFile(Fileparent
线程池思想概述我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线程池来达到这样的效果。今天我们就来详细讲解
等待唤醒案例:线程间的通信!06_等待唤醒案例分析.bmp(https://s2.51cto.com/images/blog/202212/27133534_63aa84264330d96608.bmp?xossprocess=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow
操作xml文档1.解析(读取):将文档中的数据读取到内存中1.写入:将内存中的数据保存到xml文档中。持久化的存储解析xml的方式1.DOM:将标记语言文档一次性加载进内存,在内存中形成一颗dom树优点:操作方便,可以对文档进行CRUD的所有操作缺点:占内存1.SAX:逐行读取,基于事件驱动的。优点:不占内存。缺点:只能读取,不能增删改xml常见的解析器1.JAXP:sun公司提供的解析器,支持d
概念:ExtensibleMarkupLanguage可扩展标记语言可扩展:标签都是自定义的。 功能存储数据配置文件在网络中传输xml与html的区别1.xml标签都是自定义的,html标签是预定义。1.xml的语法严格,html语法松散1.xml是存储数据的,html是展示数据语法:基本语法:1.xml文档的后缀名.xml1.xml第一行必须定义为文档声明1.xml文档中有且仅有一个根标签1.属
java.lang.Thread.State枚举类中定义了六种线程的状态,可以调用线程Thread中的getState()方法获取当前线程的状态。javapublicenumState{NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,TERMINATED;}线程状态说明NEW初始状态,线程被构建,但是还没有调用start()方法RUNNABLE运行状态,Jav
多线程原理随机性打印CPU有了两条执行的路径,CPU就有了选择,一会执行main方法一会执行run方法。也可以说两个线程,一个main线程一个run线程一起请求CPU的执行权(执行时间)谁抢到了就执行对应的代码!01_多线程随机性打印结果.bmp(https://s2.51cto.com/images/blog/202212/22141324_63a3f584091fe18656.bmp?xoss
?线程与进程进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。简而言之:一个程序运行后至
!image.png(https://s2.51cto.com/images/blog/202212/21141225_63a2a3c9b360f18415.png?xossprocess=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW
Exception和Error都是继承了Throwable类,在Java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。Exception和Error体现了Java平台设计者对不同异常情况的分类。Exception是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。Error是指在正常情况下,不大可能出现的情况
自定义异常概述为什么需要自定义异常类:我们说了Java中不同的异常类,分别表示着某一种具体的异常情况,那么在开发中总是有些异常情况是SUN没有定义好的,此时我们根据自己业务的异常情况来定义异常类。例如年龄负数问题,考试成绩负数问题等等。在上述代码中,发现这些异常都是JDK内部定义好的,但是实际开发中也会出现很多异常,这些异常很可能在JDK中没有定义过,例如年龄负数问题,考试成绩负数问题.那么能不能
Java异常处理的五个关键字:try、catch、finally、throw、throws?抛出异常throw在编写程序时,我们必须要考虑程序出现问题的情况。比如,在定义方法时,方法需要接受参数。那么,当调用方法使用接受到的参数时,首先需要先对参数数据进行合法的判断,数据若不合法,就应该告诉调用者,传递合法的数据进来。这时需要使用抛出异常的方式来告诉调用者。在java中,提供了一个throw关键字
?异常概念异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是:异常:指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。异常指的并不是语法错误,语法错了,编译不通过
String是Java语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑。它是典型的Immutable类,被声明成为finalclass,所有属性也都是final的。也由于它的不可变性,类似拼接、裁剪字符串等动作,都会产生新的String对象。由于字符串操作的普遍性,所以相关操作的效率往往对应用性能有明显影响。StringBuffer是为解决上面提到拼接产生太多中间对象的问题而提供的一个
?字符串拼接问题由于String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象。例如:javapublicclassStringDemo{publicstaticvoidmain(Stringargs){Strings="Hello";s+="World";System.out.println(s);}}在API中对String类有这样的描述:字符串是常量,它们的值
什么是Random类在JDK的java.util包中,有一个Random类,它可以在指定的取值范围内随机产生数字。Random使用步骤查看类java.util.Random:该类需要import导入使后使用。查看构造方法publicRandom():创建一个新的随机数生成器。查看成员方法publicintnextInt(intn):返回一个伪随机数,范围在0(包括)和指定值n(不包括)之间的int
概述Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下:基本类型对应的包装类(位于java.lang包中)byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterb
?System类java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有:publicstaticlongcurrentTimeMillis():返回以毫秒为单位的当前时间。publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,int
?Calendar类概念java.util.Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。获取方式Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,返回子类对象,如下:Calendar静态方法publicstaticCale
?Date类概述java.util.Date类表示特定的瞬间,精确到毫秒。继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期对象。publicDate():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。publicDate(longdate):分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元
避免重复造轮子,相关方法基于hutool日期时间工具封装并做部分增强。需要先引入如下坐标xml<dependency<groupIdcn.hutool</groupId<artifactIdhutoolall</artifactId<version{hutool.version}</version</dependency字符串转Datejava//字符串转DateDatedateTime=Date
返回两个数的最大值(支持intlongfloatdouble)javaSystem.out.println(Math.max(1,2));返回两个数的最小值(支持intlongfloatdouble)javaSystem.out.println(Math.min(1,2));返回一个数的绝对值(支持intlongfloatdouble)javaSystem.out.println(Math.abs
?概述java.lang.Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。如果一个类没有特别指定父类,那么默认则继承自Object类。例如:javapublicclassMyClass/extendsObject/{//...}根据JDK源代码及Object类的API文档,Object类当中包含的方法有11个
String类概述概述java.lang.String类代表字符串。Java程序中所有的字符串文字(例如"abc")都可以被看作是实现此类的实例。类String中包括用于检查各个字符串的方法,比如用于比较字符串,搜索字符串,提取子字符串以及创建具有翻译为大写或小写的所有字符的字符串的副本。特点1.字符串不变:字符串的值在创建后不能被更改。javaStrings1="abc";s1+="d";Sys
概述java.util.Arrays此类包含用来操作数组的各种方法,比如排序和搜索等。其所有方法均为静态方法,调用起来非常简单。操作数组的方法publicstaticStringtoString(inta):返回指定数组内容的字符串表示形式。javapublicstaticvoidmain(Stringargs){//定义int数组intarr={2,34,35,4,657,8,69,9};//打
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号