java
文章平均质量分 53
暮色_年华
这个作者很懒,什么都没留下…
展开
-
【java笔记】抽象类和接口的区别
java抽象类和接口原创 2022-08-17 18:53:48 · 121 阅读 · 0 评论 -
对API概念的理解
API的理解原创 2022-08-12 22:38:17 · 325 阅读 · 0 评论 -
java并发编程:synchronized同步方法
synchronized同步原创 2022-07-20 23:45:24 · 754 阅读 · 0 评论 -
java并发编程:使用等待超时模式模拟数据库连接池
等待超时模式设计数据库连接池原创 2022-07-14 18:04:24 · 725 阅读 · 0 评论 -
java并发工具类:CountDownLatch
并发CountDownLatch工具类原创 2022-07-14 17:20:42 · 260 阅读 · 0 评论 -
java并发编程笔记:Thread.join()的使用
Thread.join原创 2022-07-14 16:59:25 · 381 阅读 · 0 评论 -
java并发编程笔记:等待/通知机制
等待/通知机制原创 2022-07-13 10:34:46 · 818 阅读 · 0 评论 -
java并发编程笔记:安全地终止线程
java并发原创 2022-07-12 23:28:41 · 110 阅读 · 0 评论 -
java并发编程笔记:Daemon线程
javaDaemon线程原创 2022-07-12 00:05:44 · 518 阅读 · 0 评论 -
java并发编程笔记:线程的状态
java线程状态原创 2022-07-11 23:32:47 · 73 阅读 · 0 评论 -
java并发编程笔记:线程优先级
java线程优先级原创 2022-07-11 22:57:12 · 210 阅读 · 0 评论 -
【java笔记】常用接口:Cloneable接口
clone原创 2022-05-16 17:35:26 · 3589 阅读 · 0 评论 -
【java笔记】常用接口:Comparable接口
在学习数组时,Arrays类中的sort方法可以对对象数组进行排序但是:对象所属的类必须实现Comparable接口。Comparable接口的定义:java5之后接口可以加上泛型对person按年龄排序:public class person implements Comparable<person>{ int age; String name; public person(int age, String name) { ...原创 2022-05-15 19:42:32 · 6073 阅读 · 0 评论 -
【java】继承
继承的思想:基于已有的类创建新的类,继承已存在的类就是复用类的方法,而增加一些新的方法和字段,使新类能够适应新的情况。超类和子类:定义子类:使用extends关键字。在java中所有继承都是公共继承。extends表名正在构造的新类是由以存在的类继承而来,这个以存在的类称为超类,基类,或父类。新类称为子类或者派生类。一般叫做超类和子类。通过拓展超类定义子类的时候,只需要指出子类和超类的不同之处。子类可以使用继承的父类的方法。在设计类的时候,将最一般的方法放在超类中,而将更特殊原创 2022-05-05 18:03:06 · 307 阅读 · 0 评论 -
【java核心卷笔记】自动装箱与拆箱
参考文章:深入剖析Java中的装箱和拆箱 - Matrix海子 - 博客园java为每种基本数据类型提供了对应的包装器类型使用包装器的原因:可以将基本类型当做对象处理(带泛型的ArrayList只能传入对象),将基本类型包装成对象后,扩大了基本类型的操作。可以将某些基本方法放在包装器中。自动装箱:自动将基本类型转换为包装器类型自动拆箱:自动将包装器类型转化为基本数据类型当将一个包装器对象赋给基本类型时,会自动拆箱。总结:装箱过程是通过调用包装...原创 2022-05-05 18:01:59 · 186 阅读 · 0 评论 -
【java核心卷笔记】Object类及其方法
Object:所有类的超类Object类是java是所有类的始祖,在java中每个类都默认拓展了Object。Object类型的变量:可以使用Object类型的变量引用任何类型的对象。在java中只有基本类型(数值,字符,布尔)不是对象。所有数组类型都继承了Object类。Object obj=new Employee();Object类型的变量只能用作各种值的一个泛型容器。想对其中的内容进行具体操作,还需要清楚对象的原始类型,并进行相应的强制类型转换。equals方法..原创 2022-05-05 17:33:52 · 650 阅读 · 0 评论 -
【java核心卷笔记】枚举类
为什么要引入枚举类:例:就是因为在没有枚举类的时候,我们要定义一个有限的序列,比如星期几,男人女人,春夏秋冬,一般会静态常量的形式,但是使用那样的形式如果需要一些其他的功能,需要些很多奇奇怪怪的代码。所以,枚举类的出现,就是为了简化这种操作使用一个简单的枚举类表示星期:在枚举类中添加值和方法当一个类的对象是有限且固定时,用枚举类比较方便。为什么不使用静态常量替代枚举类?1、类型不安全。如果一个方法要求传入参数,如果是枚举类型,只能传入枚举类型中...原创 2022-05-05 17:24:24 · 644 阅读 · 0 评论 -
【java核心卷笔记】类和对象
面向对象程序设计概述:面向对象程序设计:OOP算法+数据结构=程序,在面向过程的程序中,算法是第一位的,数据结构是第二位的。但在OOP中,将数据放在第一位,然后再考虑操作数据的算法。对于一些规模较小的问题,将其分解为面向过程的开发方式比较理想,OOP适合解决规模更多的问题。类:类介绍:类是构造对象的模板,由类构造(construct)对象的过程称为创建类的实例(instance)。封装:从形式上看,封装就是将数据和行为组合在一个包中,并对对象的使用者隐藏具体的实现方式。对原创 2022-04-29 15:20:53 · 237 阅读 · 0 评论 -
【java笔记】反射机制
概述:动态语言:一类在运行时可以改变其结构的语言。例如新的函数,对象,代码都可以被引进;已有的函数可以被删除或是其他结构上的变化。静态语言:运行时结构不可变的语言是静态语言。java不是动态语言,但可以说是准动态语言,即java有一定的动态性,可以利用反射机制获得类似动态语言的特性。反射机制:Java Reflection。允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性方法加载完类之后,在堆内存的方法区就产生了一个C原创 2022-04-10 20:34:39 · 591 阅读 · 0 评论 -
【java笔记】注解
注解:Annotation。JDK5.0引入的新技术注解的作用:①不是程序本身,可以对程序作出解释②可以被其他程序读取注解格式:@注释名。此外还可以添加一些参数值//例@SuppressWarnings(value="unchecked")注解可以在哪里使用?可以附加在package,class,method,filed等上面,相当于给他们添加了额外的辅助信息,可以通过反射机制编程实现对这些元数据的访问内置注解:@Override 定义在java.lang.Ov原创 2022-04-10 13:27:31 · 799 阅读 · 0 评论 -
【java笔记】继承
继承:基于已有的类创建新的类,使新的类复用或已有类的字段和方法,并增加或覆盖一些新的方法(字段)。父类/基类/超类:已有的类子类:继承的类定义:extendspublic class B extends A{ add methods and fields;}子类自动继承超类的字段和方法,定义时只需要写子类特有的字段和方法。覆盖:超类中有些方法对子类不适用,子类需要提供一个新的方法来覆盖超类的方法重写/覆盖(override):方法名称一样,参数列表【一样】覆盖,覆写原创 2022-03-25 22:01:29 · 462 阅读 · 0 评论 -
【java编程初学者入门训练】牛客网: 1~10
设计一个方法,将一个小于2147483647的double类型变量以截断取整方式转化为int类型输入描述:随机double类型变量输出描述:转化后的int类型变量代码:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double d原创 2022-03-18 21:06:22 · 197 阅读 · 0 评论 -
【java笔记】大数操作(BigInteger&BigDecimal)
如果操作的时候,一个整数数据已经超过了整数的最大类型长度long的话,则此数据就无法装入,所以,此时要使用BigInteger类进行操作导包:import java.math方法列表: 描述 public BigInteger(String val) 将一个字符串变为BigInteger类型 public BigInteger add(BigInterger val) 加法 public Biginteger subtract(BigInterger val)原创 2022-03-15 20:22:12 · 1303 阅读 · 0 评论 -
【java笔记】方法引用介绍和使用
以一个例子说明public interface FunInterface { void prints(String s);}public class Demo { public static void main(String[] args) { print((s)-> System.out.println(s)); } public static void print(FunInterface M){ M.prints("hello原创 2022-03-06 17:09:48 · 1087 阅读 · 0 评论 -
【java笔记】Stream流(3):Stream流的常用方法
延迟方法:返回值仍然是Stream接口自身类型的方法,因此支持链式调用(除了终结方法外,其余方法均为延迟方法)终结方法:返回值类型不再是Stream接口自身类型的方法,因此不再支持类似StringBuilder那样的链式调用。如count 和 forEach 方法Stream流属于管道流,只能被使用一次,第一个Stream流调用完毕方法,数据就会传到下一个Stream上,而这时第一个Stream流就已经使用完毕,就会关闭了。所以第一个Stream流就不能再调用方法了。forEach原创 2022-03-06 13:33:12 · 934 阅读 · 0 评论 -
【java笔记】Stream流(2):获取流的两种方法
获取一个流通常有两种方式:●所以的Collection集合都可以通过stream默认方法获取流●Stream接口的静态方法of可以获取数组对应的流根据Collection集合获取Stream流 public static void main(String[] args) { ArrayList<String>list=new ArrayList<>(); Stream<String> stream=list.stream原创 2022-03-06 11:25:46 · 255 阅读 · 0 评论 -
【java笔记】Stream流(1)你知道什么叫Stream流吗?
JDK8 中的 Stream 是对集合(Collection)对象功能的增强,它借助于lambda表达式,更优雅的表达风格,极大的提高编程效率和程序可读性。它针对于对集合对象进行各种非常便利、高效的聚合操作,或者大批量数据操作。体验用Stream遍历集合筛选并输出姓张长度为3 的人public class Demo { public static void main(String[] args) { ArrayList<String>list=n...原创 2022-03-06 11:14:04 · 442 阅读 · 0 评论 -
【java笔记】常用函数式接口(4):Funtion接口
java.util.function.Funtion<T,R>接口根据一个类型得到另一个类型的数据,前者为前置条件,后者为后置条件抽象方法:R apply(T t):根据类型T的参数获取类型R的结果public class Demo { public static void main(String[] args) { String s="1234"; change(s,(a)->Integer.parseInt(a)); }原创 2022-03-06 10:44:02 · 190 阅读 · 0 评论 -
【java笔记】常用函数式接口(3):Predicate接口
有时候需要对某种类型的数据进行判断,从而得到一个boolean值结果,这是可以使用java,util.function.Predicate<T>接口作用:对某种数据类型的数据进行判断,返回一个boolean值抽象方法:boolean test(T t):符合条件,返回truepublic class Demo { public static void main(String[] args) { String s="abcdse"; System原创 2022-03-06 10:12:07 · 366 阅读 · 0 评论 -
【java笔记】常用接口(2):Consumer接口
Consumer接口是一个消费型接口,泛型指定什么类型,就可以使用accept消费什么类型数据直接输出:public class Demo { public static void main(String[] args) { method("asd",(name)-> System.out.println(name)); } public static void method(String name, Consumer<String>c.原创 2022-03-06 09:43:48 · 3337 阅读 · 0 评论 -
【java笔记】常用函数式接口(1):Supplier接口
Supplier接口:java.util.Supplier<T>接口包含一个无参的方法:T get()。用来获取一个泛型参数指定类型的对象数据public class Demo { public static void main(String[] args) { System.out.println(getString(()->"12341")); } public static String getString(Supplier<原创 2022-03-05 20:38:51 · 830 阅读 · 0 评论 -
【java笔记】函数式编程
lambda的延迟执行性能浪费的日志案例:public class Demo { public static void main(String[] args) { String msg1="hello"; String msg2="World"; String msg3="Java"; showLog(2,msg1+msg2+msg3); } public static void showLog(int lev原创 2022-03-05 20:20:08 · 93 阅读 · 0 评论 -
【java笔记】函数式接口
函数式接口:有且仅有一个抽象方法的接口。即使用与Lambda使用的接口语法糖:使用更加方便,但是原理不变的代码语法。例:增强for循环为迭代器的语法糖lambda可以当做匿名内部类的语法糖,但是二者在原理上有所不同格式:修饰符 interface 接口名称{ public abstract 返回值类型 方法名称(可选参数信息); //其他非抽象方法内容}@FunctionalInterface注解:可以检测接口是否是一个函数式接口使用:一般作为方法的参数和返回值类型例原创 2022-03-05 19:26:01 · 98 阅读 · 0 评论 -
【java笔记】模拟B/S服务器
创建BS版本的TCP服务器public class TCPServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket=new ServerSocket(8080); Socket socket=serverSocket.accept(); InputStream is=socket.getInputStream();原创 2022-03-05 17:30:37 · 626 阅读 · 0 评论 -
【java笔记】网络编程:文件上传案例
原理:文件的复制客户端读取本地的文件,把文件上传到服务器,服务器把上传的文件保存到服务器的硬盘上步骤:1、客户端使用本地的字节输入流,读取要上传的文件2、客户端使用网路字节输出流,把读取的文件上传到服务器3、服务器使用网络字节输入流,读取客户端上传的文件4、服务器使用本地字节输出流,把读取到的文件,保存到服务器的硬盘上面5、服务器使用网络字节输出流,给客户端会写一个“上传成功”6、客户端使用网络字节输入流,读取服务器会写的数据注意:1、客户端服务器和本地硬盘进行读写,原创 2022-03-05 14:01:15 · 672 阅读 · 0 评论 -
【java笔记】TCP通信程序
TCP通信能实现两台计算机之间的数据交互,通信的两端,严格区分客户端(Client)和服务端(Server)两端通信时步骤:1、服务端程序,需要事先启动,等待客户端连接2、客户端主动连接服务器端,连接成功才能通信,服务端不可以主动连接客户端建立的连接中包含一个对象,是IO对象,客户端和服务器端就可以使用IO对象进行通信,通信的数据不仅仅是字符,所以IO对象是字节流对象在Java中,提供了两个类实现TCP通信程序:1、客户端:java.net.Socket类表示。创建Socke原创 2022-03-05 12:44:15 · 405 阅读 · 0 评论 -
【java笔记】网络编程概述
网络编程:在一定协议下,实现两台计算机的通信的程序。软件结构:c/s结构:全称为Client/Server结构,是指客户端和服务器结构。常见有QQ,迅雷等软件B/S结构:Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌火狐等。网络通信协议:位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则。对数据传输的格式,传输速率,传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换。TCP/IP协议:传输控制协议/因特网互联协议(Transmi原创 2022-03-05 10:10:53 · 682 阅读 · 0 评论 -
【java笔记】打印流printStream
printStream打印流:继承了OutPutStream1、只负责输出,不负责读取、2、不抛出IOException3、特有的方法:print/printLn(任意类型的值)构造方法:PrintStream(File file):输出的目的地是一个文件printStream(OutputStream out):输出的目的地是一个字节输出流printStream(String filename):输出的目的地是一个文件路径可以改变输出语句的目的地(打印流的流向)输出原创 2022-03-04 22:36:19 · 458 阅读 · 0 评论 -
【java笔记】序列化和反序列化
序列化: 写对象,把对象以流的方法写入到文件中反序列化:读对象把文件中保存的对象,以流的方式读取出来序列化和反序列化时,会抛出NotSerializableException没有序列化异常类通过实现java.io.Serializable接口以启用其序列化功能。未实现接口的类将无法使其任何状态序列化或反序列化。Serializable接口也叫标记型接口,要进行序列化和反序列化的类必须实现Serializable接口,就会给类添加一个标记,当我们进行序列化和反序列化时,就会检测类上是否原创 2022-03-04 22:18:39 · 82 阅读 · 0 评论 -
【java笔记】转换流
BufferedInputStreamReader:字符缓冲输入流使用步骤:1、创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码表名称2、使用InputStreamReader对象中的方法read读取文件3、释放资源注意事项:构造方法中指定的编码表名称要和文件的编码相同,否则会发生乱码InputStreamReader isr=new InputStreamReader(new FileInputStream("d:\\a.txt"),S...原创 2022-03-04 21:02:53 · 225 阅读 · 0 评论