![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java学习
文章平均质量分 56
Miracle Bear
The king of Miracles.
展开
-
Steam流
方法的形参是一个可变参数,可以传递一堆零散的数据,也可以传递数组,但数组必须是引用数据类型的,如果传递基本数据类型,会把整个数组当做一个元素,放到Stream当中。中间方法,返回新的stream流,原先的stream流只能使用一次,建议使用链式编程,修改stream流中的数据,不会影响原来集合或者数组中的数据。在List,set,map接口中,都存在静态的of方法,可以获取一个不可变的集合.map(键1,值1,键2,值2,键3,值3......)(2)把张开头的,长度为3的元素再存储到新集合中。原创 2023-02-05 17:50:12 · 1480 阅读 · 1 评论 -
线程池的思考总结(一)
线程池主要用于多线程的服务器例如MYSQL中,它是基于池化思想管理线程的工具。线程过多会带来不必要的开销,比如创建销毁线程,调度线程带来的开销,这些开销会极大的占用计算机的资源,造成计算机的整体性能的下降.线程池维护多个线程,等待监督管理者下发任务,这样既避免了处理接收到的任务时创建销毁线程带来的开销,也避免了线程数量过大可能造成的调度问题,保证了对内核的充分利用。使用线程池带来的好处:减少资源消耗:可以重复利用线程池中已经创建好的线程,避免了创建销毁线程所产生的消耗。原创 2023-01-30 17:36:27 · 553 阅读 · 0 评论 -
zookeeper相关(二)
(1)每台server发出一个投票,由于是初始情况,server1和server2都将自己作为leader服务器进行投票,每次投票包含所推举的服务器myid,zxid,epoch,使用myid,zxid表示,此时server1投票为(1,0),server2投票为(2,0),然后将各自投票发送给集群中其他机器.(2)接收来自各个服务器的投票.集群中的每个服务器收到投票后,首先判断该投票的有效性,如检查是否是本轮投票(epoch),是否来自LOOKING状态的服务器.原创 2022-12-23 23:46:57 · 1221 阅读 · 0 评论 -
Java垃圾回收算法
对内存的逻辑分区采用1:2的分配方式,小的部分是年轻代,有线程新建后先放入年轻代,回收多次都无法回收掉的放入老年代,一般15-6次,具体是取决于你使用的垃圾回收器,但是这个1:2的比列也不是固定不变的,也能够根据设定的参数不同进行调优.等下次扫描时,会将伊甸园区和第一块幸存者区一起扫描,将存活对象存到第二块幸存者区,其余全部回收掉,等下次扫描时,会将第二块幸存者区与伊甸园区一起扫描,将存活后的区域放置到第一块幸存者区中,伊甸园区与幸存者区默认比例为8:1:1.原创 2022-12-15 17:47:42 · 429 阅读 · 0 评论 -
线程池的使用
【代码】线程池的使用。原创 2022-08-19 20:06:38 · 131 阅读 · 1 评论 -
注解在反射机制中的应用
格式:类型 参数名() [default 默认值]注:[]中的内容可以写也可以不写.default用于指定该参数的默认值,指定后,在使用注解时如果不为该参数赋值时则采用默认值.例如:当我们在@AutoRunMethod上定义一个参数:使用时:@AutoRunMethod(5): value的值为5@AutoRunMethod(3): value的值为3@AutoRunMethod: value的值使用默认值1。原创 2022-08-19 20:05:59 · 212 阅读 · 0 评论 -
自动调用与当前类同一个包中类当中所有公开的无参方法
method.getModifiers()== Modifier.PUBLIC//判断是否为公开方法。System.out.println("自动调用:"+method.getName()+"()");System.out.println("实例化对象:"+cls.getSimpleName());method.getParameterCount()==0//判断是否无参。//根据.class文件名获取类名 例如:Person.class。//获取该目录中所有的.class文件。...原创 2022-08-18 20:11:05 · 312 阅读 · 0 评论 -
JAVA反射机制
反射机制是一个动态机制,它允许我们在程序运行期间再确定实例化,方法的调用,属性的操作等,使得程序的灵活度大大提高,但是随之带来了更多的系统开销和较低的运行效率因此,反射机制不能被过度使用使用反射机制的第一步:获取要操作的类的类对象,即:Class的实例JVM中被加载的类都有且只有一个Class的实例与之对应,该实例就称为被加载的这个类的类对象.类对象上会记录这其表示的类的一切信息(类名,方法信息,属性信息等)1:类名.class:参数要求是要加载的类的完全限定名:包名+类名。...原创 2022-08-18 20:01:29 · 124 阅读 · 0 评论 -
java.util.Map 查找表
Map体现的结构是一个多行两列的表格。其中左列称为key,右列称为valueMap总是根据key获取对应的valueMap中的key不允许重复(equals判定)Map是一个接口,常用的实现类:java.util.HashMap:散列表,哈希表。散列表是当今查询速度最快的数据结构,被大量应用于缓存服务器中。示例:新建一个查找表向Map中存入一组键值对。...原创 2022-08-15 19:28:04 · 235 阅读 · 1 评论 -
判断file是否存在的方法
file.exists()判断当前file表示的目录或者文件是否存在,存在则返回true。在当前项目目录下新建一个文件:test.txt。判断该位置下是否已经存在了这个文件或者目录。创建一个File表示要创建的文件。...原创 2022-08-15 19:12:44 · 3679 阅读 · 0 评论 -
java.util.Collection接口
java.util.Collection接口,java中所有的集合都实现了该接口,集合像数组一样,可以保存一组元素,并且对于元素的操作全部封装成了方法,使用便捷集合提供了多种不同的数据结构Collection下面两个常见的子类型java.util.List接口:线性表,是一个可重复且有序的集合java.util.Set接口:不可重复的集合这里重复指的是元素是否重复,而判定重复的标准是依靠元素equals方法比较的结果,equals方法返回true则为重复集合只能存放引用类型的。...原创 2022-08-15 19:05:26 · 478 阅读 · 0 评论 -
注册网页的实现
在构造器内先alt加insert键Constructor,然后get and set,最后 toString()打个桩。1:获取用户在注册页面上输入的注册信息(通过请求对象获取浏览器提交的表单数据)3:设置响应对象,将处理结果回馈给浏览器。建一个同名的有参构造器。然后建一个无参构造器。...原创 2022-08-15 18:48:15 · 517 阅读 · 0 评论 -
集合的排序
方法语句:Collections.sort(List list);该方法要求List集合中的元素必须是可比较的,判定是否可比较的标准为元素是否实现了接口当我们使用一个API时,该API反过来要求我们为其修改代码,那么这个API就对我们的程序有侵入性,侵入性不利于程序后期维护,应当尽量避免单独定义比较器(定义Point元素的比较规则)compare方法用于定义o1和o2比较大小的规则,并用返回值表达大小关系.返回值实现的要求:如果返回值>0则表达的是o1>o2。...原创 2022-08-09 18:49:28 · 95 阅读 · 0 评论 -
集合以及子集的增删操作
将子集每个元素扩大10倍,原集合也发生了改变,对子集的操作就是对原集合对应元素的操作。list接口中提供了一套可通过下标操作元素的方法: E get(int index)将参数给定的集合中的所有元素添加到当前集合中,添加后当前集合发生了改变则返回true。注:在对集合操作的性能没有特别苛刻要求时,通常ArrayList是最好的选择.方法语句: void add(int index,E e)作用:将给定元素e添加到index指定位置,插入元素操作。方法语句: E set(int index,E e)...原创 2022-08-08 20:35:39 · 902 阅读 · 0 评论 -
数组与集合的相互转换
添加元素相当于要对数组扩容,数组是定长的不可以真实的扩容,因此会抛出不支持该操作的异常.删除也是一样的。如果我们需要增删元素,可另行创建一个集合同时包含该集合元素即可。Collection提供了一个方法:toArray,可以将当前集合转换为一个数组。数组的工具类java.util.Arrays提供了一个静态方法:asList。改集合相当于改数组,但是这个集合不能增删。该方法可以将一个数组转换为一个List集合。相当于先new再addAll。建立数组并转换成集合。...原创 2022-08-08 20:19:56 · 826 阅读 · 0 评论 -
集合的遍历-迭代器-增强型for循环
泛型也称为参数化类型,允许我们在使用一个类时,传入某个类型来规定其内部的属性,方法的参数或方法返回值的类型,使得我们使用时更加方便.在集合中泛型被广泛使用,用于规定集合中的元素类型.泛型原型为Object,编译器认可 赋值操作时,编译器会检查类型是否匹配,不匹配会编译不通过。注:迭代器默认开始位置是在集合第一个元素之前,因此第一次调用时判断的就是是否有第一个元素,并且无论调用多少次hasNext()方法,迭代器的位置都不会改变.语句方法: E next()迭代器指定的泛型应当与其遍历的集合泛型一致。...原创 2022-08-08 20:08:44 · 478 阅读 · 0 评论 -
聊天室服务端(数组变成集合)
代码】聊天室服务端(数组变成集合)原创 2022-08-08 14:19:12 · 132 阅读 · 2 评论 -
集合以及应用
java.util.Collection接口,java中所有的集合都实现了该接口,集合像数组一样,可以保存一组元素,并且对于元素的操作全部封装成了方法,使用便捷。这里重复指的是元素是否重复,而判定重复的标准是依靠元素equals方法比较的结果,equals方法返回true则为重复。判断当前集合是否包含给定元素,判断依据是给定元素是否与集合元素存在equals比较为true的情况。删除集合中比较为true的元素,若存在相同元素,则只删一个。java.util.List接口:线性表,是一个可重复且有序的集合。.原创 2022-08-05 18:30:52 · 213 阅读 · 0 评论 -
多线程与同步块
当使用多个synchronized锁定多个代码片段并且指定的同步监视器对象是同一个时,这些代码片段之间就是互斥的。当多个线程并发操作同一临界资源,由于线程切换实际不确定,导致操作临界资源的完整过程出现混乱从而导致各种不良后果。静态方法上使用synchronized后,所有对象不可选,指定的是当前类的类对象。有效的缩小同步范围可以在保证并发安全的前提下尽可能的提高并发效率。临界资源:操作该资源的完整过程同一时刻只能被单线程进行的资源。JVM中每一个被加载的类都有且只有一个Class实例与之对应。...原创 2022-08-05 18:22:25 · 93 阅读 · 0 评论 -
聊天室3.0
2.监听该端口,一旦一个客户端连接时,就会返回一个Socket实例与其通讯.(accept()方法的作用)1:开启服务端口,客户端就是通过这个端口与服务端进行连接的。原创 2022-08-05 17:42:32 · 118 阅读 · 0 评论 -
多线程的演示
java中所有的代码都是靠线程执行的,main方法也不例外,运行main方法的线程是JVM创建的,并且取名为“main"* 2:在定义线程同时重写run方法来定义任务,这导致线程与任务存在必然的耦合关系,不利于线程的重用.System.out.println("运行dosome方法的线程:"+t);System.out.println("优先级:"+priority);System.out.println("看热闹的");System.out.println("看热闹的");* 主动索取时间片。...原创 2022-08-03 18:53:44 · 94 阅读 · 0 评论 -
聊天室2.0
2.监听该端口,一旦一个客户端连接时,就会返回一个Socket实例与其通讯.(accept()方法的作用)1.开启服务端口,客户端就是通过这个端口与服务端进行连接的。原创 2022-08-03 18:24:22 · 58 阅读 · 0 评论 -
异常的处理问题
通常用于说明项目中那些因为不满足业务而导致的错误自定义异常要做到以下几点1.类名要见名知意2.继承自Exception(直接或者间接继承)3.提供父类异常定义的所有构造器}}}}}}原创 2022-08-02 19:59:12 · 151 阅读 · 0 评论 -
聊天室服务器初级练习
代码】聊天室服务器。原创 2022-08-02 19:39:03 · 103 阅读 · 0 评论 -
字节字符流与错误的处理方法
java.IO将流按照读写数据的单位划分为字节与字符流java.io.InputStream和OutputStream是所有字节流的超类,是抽象类java.io.Reader和Writer则是所有字符流的超类字节流与字符流的超类互相不存在继承关系,是平级的。Reader中定义了几个read方法,规定所有字符流都必须具备的读取字符的方法Writer中定义了几个write方法,规定了所有字符流都必须具备的写出字符的方法。...原创 2022-08-01 19:48:32 · 523 阅读 · 0 评论 -
缓冲流对象流输出流
缓冲字节输入流的read方法第一次调用是会一次性读一组数据进入到内部的缓冲区,然后返回其中第一个字节,第二次调用时会直接将数组中第二个字节返回,直到所有字节均返回后,下次调用read方法会再次块读数据进入数组。节点流也称为低级流,特点是实际链接程序与另一端的流,负责实际读写字节数据的流,读写一定是建立在节点流基础上进行的。节点流也称为低级流,特点是实际连接程序与另一端的流,负责实际读写字节数据的流。文件流就是典型的低级流,是实际连接程序与文件的流,负责读写文件数据。...原创 2022-07-29 18:06:12 · 327 阅读 · 0 评论 -
io输入输出
javaio输入输出Input输入读操作Output输出写操作java将读写功能按照方向划分为输入与输出输入负责读取,是从外界进入到我们的程序的方向输出负责写出,是从我们的程序到外界的方向java将io比喻为是流,英文是Steam像水流一样,我们向着同一侧方向顺序移动的过程,只不过在javaio中我们的流是字节流,流动的是字节。而在这里Java的io流可以想象为是连接我们程序与另一端的“管道”,内部向着同一方向顺序移动字节。...原创 2022-07-28 20:23:49 · 534 阅读 · 0 评论 -
正则表达式相关
Arrays.toString(数组名)------将某个数组转换为字符串。-包括Integer、Character、Byte、Short、Long、Float、Double、Boolean,其中Character和Boolean是直接继承自object的,而其余6个包装类继承自java.lang.Number类.\w表示任意一个单词字符,等同于[a-zA-Z0-9_]-----单词字符指字母、数字、下划线。*表示前面的内容出现任意次(0-多次)---匹配内容与+-一致,只是可以一次都不写。...原创 2022-07-28 19:50:02 · 349 阅读 · 0 评论 -
lambda表达式
/以D开头,判断以括号内元素开头的元素的方法startsWith("D")当要实现的接口中只有一个抽象方法时才可以使用lambda表达式去替换原始的匿名内部类形式创建。//如果这句代码含有return关键字,那么在忽略{}的同时忽略return。//只要file表示的文件的名字的是以D开始的则接受。//含有t的则接受返回。lambda表达式给我们的直观感受是可以用更简洁的语法创建匿名内部类。//如果方法体中只有一句代码时,方法体的{}可以不写。//该过滤器的过滤条件是名字含有t的则接受。......原创 2022-07-28 20:15:43 · 824 阅读 · 0 评论 -
路径file相关
file可以表示硬盘上的一个文件或目录(本质上保存的是一个抽象路径)file可以1.访问其表示的文件或目录的属性2.创建删除文件或空目录3.访问一个目录中的子项file不可以访问文件数据绝对路径的优点是清晰明了,但是缺点是路径写死了,跨平台不好运行相对路径的优点是有良好的跨平台性“./”是当前目录,在idea中当前目录指的是当前程序所在的项目目录获取file表示的文件或目录的名字获取当前file表示的文件的大小(单位是字节)在目录下新建100个文件,命名为。...原创 2022-07-28 20:11:17 · 1128 阅读 · 0 评论 -
String的相关方法
booleanstarts=str.startsWith("think");//去除str两边的空白字符,并将去除之后的新的对象存储到str中。booleanends=str.endsWith(".png");//123.456------字符串类型。//123.456------字符串类型。//123------字符串类型。System.out.println(builder);System.out.println(builder);System.out.println(builder);...原创 2022-07-27 20:03:04 · 92 阅读 · 0 评论 -
string的演示
System.out.println(s.equals(s1));//true,equals()比较的是内容是否相等。System.out.println(s==s1);Strings2="123"+"abc";//直接复用常量池中的对象。编译器在编译时,若发现是两个字面量相连时,则会直接连接好并将结果保存起来。在实际应用中,string比较相等一般都是比较字符串内容是否相等。如下语句相当于Strings2="123abc";常量池还没有,因此创建该字符串对象,并存入常量池。...原创 2022-07-27 19:33:27 · 65 阅读 · 0 评论 -
面向对象相关知识
java推荐我们使用字面量/直接量的方式来创建对象,并且会缓存所有以字面量形式创建的字符串对象到常量池中,当使用相同字面量再创建对象时将会复用常量池中的对象,以减少内存开销。-调用方法时,会在栈中为该方法分配一块对应的栈帧,栈帧中存储局部变量(包括方法的参数),方法调用结束时,栈帧被自动清除,局部变量也一并被清除。2.若有,则直接将常量池中的对象(引用)返回--并不会创建新的字符串对象。-内存泄漏不再使用的对象还没有被及时的回收,严重的泄露会导致系统的崩溃。...原创 2022-07-27 19:30:03 · 77 阅读 · 0 评论 -
多态以及演示
同一类型的引用在指向不同的对象时,有不同的实现-------所有的抽象方法都是多态的。-同一个对象被造型为不同类型时,有不同的功能---------所有的对象都是多态的。建议建议强转之前先通过instanceof来判断所指向的对象是否是该类型。-强转时若不满足如上条件,则发生classCastExcep类型的异常。-向上造型父类的引用指向子类的对象-------前父后子。-引用所指向的对象,实现了该接口或继承了该类。能造型成为的数据类型父类+所实现的接口。-引用所指向的对象,就是该类型。...原创 2022-07-27 19:19:46 · 67 阅读 · 0 评论 -
接口以及演示
一个类可以实现多个接口,只需要逗号隔开,若是又继承又实现时,应该先继承后实现。-类中成员的默认访问权限是默认的,接口中成员的默认访问权限是公开的。-类和类之间是继承,接口和接口之间是继承,类和接口之间是实现。-接口是需要被实现/继承的,实现类必须重写所有抽象方法。-能够造型成为的类型父类+所实现的接口。-也是一种数据类型(引用类型)-由interface定义。-只能包含常量和抽象方法。-接口是一个标准一个规范。...原创 2022-07-27 19:13:31 · 64 阅读 · 0 评论 -
成员以及匿名内部类
2.2.在匿名内部类中是不能修改外面局部变量的值,因为在此处该变量的值会默认为final。2.1.若想创建一个类的对象,并且对象只被创建一次,此时可以设计为匿名内部类。3.1.1.若为子类所特有的行为,则将方法设计在特定的类中。内部类中有一个隐式的引用,指向了创建它的外部类对象。5.2.异常--------运行时发生,找到@后的链接点击。1.4.内部类中可以直接访问外部类的成员(包括私有的)1.1.类中套类,外面的称为外部类,里面的称为内部类。5.1.编译错误--------违反语法规则。...原创 2022-07-27 19:10:18 · 92 阅读 · 0 评论 -
抽象方法抽象类
2.设计为普通方法意味着派生类可以重写也可以不重写,但设计为抽象方法,可以强制派生类必须重写-----达到统一的目的。-为所有派生类提供统一的类型----向上造型(代码复用)1.将派生类共有的属性和行为,抽到超类中------抽共性。-接口是对继承的单根性的扩展----实现多继承。-封装共有的属性和行为-------代码复用。重写抽象方法--------变不完整为完整。也声明为抽象类-------但用法较少。2.若派生类的行为都一样,设计为普通方法。1.由abstract修饰。由abstract修饰。...原创 2022-07-26 17:25:45 · 92 阅读 · 0 评论 -
成员变量相关
---表示导入了包中的所有类,但不建议,建议用哪个类就导哪个类。何时用方法的操作与对象无关---方法中不需要访问对象的属性或行为。行为(方法)公开化(public)---------绝大数方法都是公开的。顺序问题package----import----class。2.类的访问权限只能是public或默认的,类中成员的访问权限如上四种。-静态变量有static修饰,属于类的,存储在方法区中,只有一份。先import导入类再使用类-----------建议。类的全称---------太繁琐不建议。......原创 2022-07-26 17:09:30 · 58 阅读 · 0 评论 -
什么是构造方法
null表示空,没有指向任何对象,若引用的值为null,则盖印用的不能进行任何操作,若进行操作则会发生NullPointerException空指针异常。构造方法到底要不要参数,要看对象的数据能不能写死,如果对象的数据都一样,意味着可以写死,不需要传参,如果对象的数据不一样,意味着不能写死,那就需要传参。this的用法this.成员变量名---------访问成员变量。构造函数、构造器、构建器--------复用给成员变量赋初值的代码。this.方法名()-------调用方法(一般不用)......原创 2022-07-26 16:33:58 · 395 阅读 · 0 评论 -
什么是类?
对象真实存在的单个的个体类类型/类别,代表一类个体类是对象的模板,对象是类的具体的实例类中可以包括对象的属性/特征----------成员变量对象的行为/动作/功能-----------方法如何创建类?如何创建对象?如何访问成员?类引用数据类型。...原创 2022-07-26 16:24:22 · 2499 阅读 · 0 评论