Java
文章平均质量分 73
jayvee_
互联网是有记忆的。
展开
-
Java 8 新增操作集合的方法
1.PredicateJava 8 起为 Collection 集合新增了 一个 removeIf(Predicate filter)方法。传入 Predicate 对象参数removeIf(Predicate filter),该方法将会批量删除符合 filter 条件的所有元素 。Predicate是函数式接口,因此可以Lambda表达式作为参数books.removeIf(elem -> ((String) elem).length() < 10); // 所有长度小于 10原创 2022-04-11 22:21:33 · 922 阅读 · 0 评论 -
Java多线程基础
文章目录程序进程线程线程和进程的区别进程和程序的区别Java中实现多线程通过继承Thread类实现多线程**通过Runnable接口实现多线程**线程状态(New) 新生状态(Runnable)就绪状态(Running)运行状态(Blocked) 阻塞状态(Terminated)死亡状态**终止线程的典型方法(重要)**暂停线程执行常用方法线程的联合 `join()`线程基本信息线程优先级线程同步死锁及解决方案线程并发协作程序“程序(Program)”是一个静态的概念,一般对应于操作系统中的一个可执行文转载 2022-03-12 16:19:53 · 298 阅读 · 0 评论 -
Java IO 技术
文章目录流的概念IO 流类体系InputStream / OutputStreamReader / Writer文件字节流文件字符流缓冲字节流缓冲字符流字节数组流流的概念按流的方向分类: 1. 输入流:数据流向是数据源到程序(以InputStream、Reader结尾的流)。 2. 输出流:数据流向是程序到目的地(以OutPutStream、Writer结尾的流)。 按处理的数据单元分类:字节流:以字节为单位获取数据,命名上以 Stream 结尾的流一般是字节流,如FileInput原创 2022-02-22 14:17:22 · 294 阅读 · 0 评论 -
垃圾回收机制
垃圾回收机制(Garbage Collection)GC原理和算法内存管理是对象的管理,包括对象空间的分配(new 创建对象)和释放(对象赋值null)。垃圾回收器将负责回收所有”不可达“对象的内存空间。垃圾回收过程发现无用的对象回收无用对象占用的内存空间无用的对象指的就是没有任何变量引用该对象。相关算法引用计数堆中每个对象都有一个引用计数。被引用一次,计数加1. 被引用变量值变为null,则计数减1,直到计数为0,则表示变成无用对象。优点是算法简单,缺点是“循环引原创 2022-02-14 22:01:35 · 1148 阅读 · 0 评论 -
03-面向对象基础
对象和类对象是具体的事物;类是对对象的抽象类可以看成一类对象的模板,对象可以看成该类的一个具体实例类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所应具有的共同的属性、方法面向对象内存分析Java虚拟机的内存可以分为三个区域:栈stack、堆heap、方法区method area。栈的特点:栈描述方法执行的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等)栈属于线程原创 2022-02-14 22:00:09 · 115 阅读 · 0 评论 -
19 - Java连接Mysql
MySQL 8.0 以上版本的数据库连接有所不同:1、MySQL 8.0 以上版本驱动包版本 mysql-connector-java-8.0.16.jar。2、com.mysql.jdbc.Driver 更换为 com.mysql.cj.jdbc.Driver。3、MySQL 8.0 以上版本不需要建立 SSL 连接的,需要显示关闭。4、allowPublicKeyRetrieval=true 允许客户端从服务器获取公钥。5、最后还需要设置 CST。import java.sql.*;.原创 2021-08-05 18:36:32 · 179 阅读 · 0 评论 -
18 - 反射
类加载器类加载当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过类的加载,类的连接,类的初始化这三个步骤来对类进行初始化。如果无意外,JVM将会连续完成这三个步骤,所以有时也把这三个步骤统称为类加载或者类初始化。类的加载指将class文件读入内存,并为之创建一个java.lang.Class对象任何类被使用时,系统都会为之建立一个java.lang.Class对象类的连接验证阶段:用于检验被加载的类是否有正确的内部结构,并和其他类协调一致准备阶段:负责为类的变量分配内存,并翻译 2021-08-04 14:07:42 · 41 阅读 · 0 评论 -
17 - Stream流
Stream流的生成方式Collection体系的集合可以使用默认方法stream()生成流 default Stream stream()Map体系的集合间接生成流Map<String, Integer> map = new HashMap<>();Stream<String> mapStream = map.keySet().stream();Stream<Integer> mapstream = map.values().stream();原创 2021-08-02 11:14:29 · 89 阅读 · 0 评论 -
15-方法引用
加粗样式原创 2021-08-02 08:53:02 · 37 阅读 · 0 评论 -
16-Java 函数式接口笔记
函数式接口:有且仅有一个抽象方法的接口Java中的函数式编程体现在Lambda表达式,所以函数式接口就是可以适用于Lambda使用的接口;只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利进行推导。检测函数式接口:@FunctionalInterface函数式接口作为方法的参数如果方法的参数是一个函数式接口,我们可以使用Lambda表达式作为参数传递startThread(()->sysout("线程启动了"));函数式接口作为方法返回值public static.翻译 2021-08-01 13:13:31 · 76 阅读 · 0 评论 -
14 -Lambda表达式
函数式编程思想在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿数据做操作”面向对象思想强调“必须通过对象的形式来做事情”。函数式思想则尽量忽略面向对象的复杂语法:“强调做什么,而不是以什么形式去做”而我们要学习的Lambda表达式就是函数式思想的体现。// 方式1:实现类的方式完成需求MyRunnable mr = new MyRunnable();Thread t = new Thread(mr);t.start();// 方式2:匿名内部类的方式改进new Thread(ne原创 2021-07-28 17:01:25 · 63 阅读 · 0 评论 -
13 - Java进程与线程
实现多线程进程进程:是正在运行的程序。(如正在运行的QQ、微信…就是一个个进程。)是系统进行资源分配和调用的独立单位每一个进程都有它自己的内存空间和系统资源线程线程:是进程中的单个顺序控制流,是一条执行路径单线程:一个进程只有一条执行路径多线程:一个进程又多条执行路径举例:记事本程序(单)、扫雷程序(多)多线程的实现方式方式1:继承Thread类定义一个类MyThread继承Thread类在MyThread类中重写run()方法创建MyThread类的对象启动原创 2021-07-28 10:45:06 · 79 阅读 · 0 评论 -
11-Java特殊流
标准输入输出流标准输入输出流System类中有两个静态的成员变量:public static final InputStream in: 标准输入流。通常该流对应于键盘输入或由主机环境或用户指定的另一个输入源public static final PrintStream out:标准输出流。该流通常对应于显示输出或由主机环境或用户指定的另一个输出目标自己实现键盘录入数据:BufferedReader br = new BufferedReader(new InputStreamReader(原创 2021-07-24 16:35:58 · 99 阅读 · 1 评论 -
10-Java的File和IO
FileFile概述和构造方法File是文件和目录路径名的抽象表示。文件和目录可以通过FIle封装为对象的对File,其封装的并不是一个真正的文件,仅仅是一个路径名,可以存在也可以不存在,将来是要通过具体的操作把这个路径的内容转换为具体存在的。File f = new File("/home/cenjw/java.txt");File类创建功能// 创建文件File f = new File("./javaTest.txt"); f.createNewFile();// 创建原创 2021-07-18 22:27:42 · 81 阅读 · 0 评论 -
09-Java泛型
泛型概述顾名思义,就是将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的类型。它提供了编译时类型安全检测机制,该机制允许在编译时检测到非法的类型。泛型类public class Generic<T> { private T t; public T getT(){return t;} public void setT(){this.t=t;}}泛型方法...public class Generic { public <T> void show(T t)原创 2021-07-09 12:25:56 · 60 阅读 · 0 评论 -
08-java集合
集合概述集合像是一个容器,专门用来存储任意数据类型的,且长度可变的对象。集合照其存储结构可分为单列集合Collection和双列集合Map。Collection(单列集合根接口):存储一系列符合某种规则的元素。重要的两个子接口:List:List集合特点是元素有序,可重复。主要实现类:ArrayList、LinkedListSet:元素无序且不可重复。实现类:HashSet、TreeSetMap(双列集合根接口):用于存储具有键(Key)、值(Valuel)映射关系的元素。key是唯一原创 2021-06-15 22:48:12 · 171 阅读 · 0 评论 -
07-Java常用类
来源:http://wegocoding.top/article/java-09/String类与StringBuffer类String类String类的初始化String s1 = null;String s2 = "";String s3 = "123";String str1 = new String(); // Create an empty stringString str2 = new String("abc"); // Create an string "abc"// C原创 2021-06-11 11:09:58 · 1026 阅读 · 0 评论 -
06-Java中的异常、垃圾回收机制
异常Throwable类的继承体系,有两个直接子类Error、Exceptioin,如图Error(错误类),Java运行时的系统内部错误或资源耗尽错误,修改程序本身不能恢复。Exception(异常类),表示程序本身可以处理的错误。Java开发中进行的异常处理都是针对Exception及其子类。Tips:除了RuntimeException类及其子类表示运行时异常,Exception类下所有其他子类都用于表示编译时异常。异常的类型编译时异常(checked异常)除了RuntimeE原创 2021-06-03 16:17:12 · 279 阅读 · 1 评论 -
05-Java类与对象(下)
多态Java中,多态是指不同类的对象在调用同一个方法时所呈现出的多种不同的行为。Java多态性是由类的继承、方法重写以及父类引用变量指向子类对象体现的。多态的体现abstract class Animal { abstract void shout();}class Cat extends Animal { public void shout() { System.out.println("喵喵..."); }}class Dog extends An原创 2021-05-30 22:42:30 · 245 阅读 · 3 评论 -
004深入Java数组
参考 文章内存中的数组数组引用变量只是一个引用,这个引用可以指向任何有效的内存,只有它指向有效内存时才可通过该数组变量来访问数组元素。实际的数组对象被存储在堆(heap)内存中;若引用该数组对象的数组引用变量是一个局部变量,则它被存储在栈(stack)内存中。如图1[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-63GJAje0-1621522058234)(D:\myMajor\workstation\Notes\Java\c4-数组在内存中存储.png)]为什么原创 2021-05-21 10:45:31 · 83 阅读 · 1 评论 -
Markdown的基本使用
参考文章:Markdown的基操概述Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用。看到这里请不要被「标记」、「语言」所迷惑,Markdown 的语法十分简单。常用的标记符号也不超过十个,这种相对于更为复杂的HTML 标记语言来说,Markdown 可谓是十分轻量的,学习成本也不需要太多,且一旦熟悉这种语法规则,会有一劳永逸的效果。本文仅介绍常用的语法,可以满足日常记笔记的需求啦。详情请参考Markdown中文文档。推荐使用Typora编辑笔原创 2021-05-17 23:09:59 · 118 阅读 · 0 评论 -
02-数据类型和运算符
Java是纯粹的面向对象编程的语言,完全支持面向对象的三大特征:封装、继承和多态。Java程序的组成单位就是类,多大的Java应用程序都是由一个个类组成的。封装把对象的实现细节隐藏起来,通过公用方法暴露该对象的功能。继承面向对象实现软件复用的重要手段,当子类继承父类后,子类作为一种特殊的父类,将直接获得父亲的公有属性和方法。继承具有传递性:单继承:一个类只允许有一个直接父类,即类等级为树形结构多继承:一个类允许有多个直接父类Tips: Java不支持多继承,多继承可能引起继承结构的.原创 2021-05-17 23:07:24 · 53 阅读 · 0 评论 -
01-Java运行机制与JVM
参考链接:wego个人博客前言:高级语言的运行机制计算机高级语言按程序的执行方式可分为编译型和解释型两种。编译型指使用专门的编译器,对特定平台将代码一次性”翻译“成可被该平台执行的机器码(机器指令和操作数)并包装成该平台所能识别的可执行性程序的格式,这个过程就叫做编译(Compile)。可执行性程序可以脱离开发环境,在特定平台上独立运行。如:C/C++、Swift、Kotlin等解释型指使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行的语言。如:Python、JavaScript原创 2021-05-17 23:06:07 · 89 阅读 · 3 评论 -
第十届蓝桥杯B组试题之特别的数的和
试题 F: 特别数的和【问题描述】小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。 请问,在 1到 n 中,所有这样的数的和是多少?【输入格式】输入一行包含两个整数 n。【输出格式】输出一行,包含一个整数,表示满足条件的数的和。【样例输入】40【样...原创 2019-11-15 10:23:32 · 707 阅读 · 1 评论 -
第十届蓝桥杯B组试题之数的分解
问题描述把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,一共有多少种不同的分解方法?注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和 1001+1000+18 被视为同一种。答案提交这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。im...原创 2019-11-15 10:12:51 · 255 阅读 · 0 评论 -
并发修改异常解决xception in thread "main" java.util.ConcurrentModificationException
List<String> list = new ArrayList<>(); list.add("cobe"); list.add("james"); list.add("curry"); Iterator<String> its = list.iterator(); while...原创 2019-11-09 22:00:14 · 1000 阅读 · 0 评论 -
List存储学生对象并遍历(两种方式)
1. 1 List的特点可重复,有序,存储和取出顺序一致1.2 存储学生对象并遍历import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class ListDemo { public static void main(String[] args) { ...原创 2019-11-09 21:42:47 · 948 阅读 · 0 评论 -
Java集合
1.1 集合概述Java中的集合就像一个容器,专门用来存储Java对象,对象可以是任意的数据类型,且长度可变。按照其存储结构可以分为两大类:单列集合Collection:有两个重要的子接口List:存放元素可以重复,有序Set:不可重复,无序双列集合Map:key-value映射关系HashMap1.2 collection的常用方法public class C...原创 2019-11-09 16:56:22 · 78 阅读 · 0 评论