JavaSE
Java基础部分
明天,你好呀
休息的时候,别忘了别人还在奔跑!
展开
-
Java中的Stream流详解
文章目录1、Stream API概述2、Stream 的操作三个步骤3、创建Stream的方式4、中间操作筛选与切片映射排序5、终止操作查找与匹配归约收集Collectors 中的方法1、Stream API概述Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询,也可以使用 Stream API 来并行执行操作。简而言之,Stre原创 2020-06-28 18:05:40 · 4425 阅读 · 2 评论 -
详解Java中的Lambda表达式
文章目录1、Lambda表达式概述2、Lambda表达式语法3、具体写法无返回值有形参的抽象方法有返回值的抽象方法有一个形参的抽象方法Lambda表达式作为参数传递4、Lambda表达式注意事项5、Java中四大函数式接口6、方法引用对象::实例方法类::静态方法类::实例方法7、构造引用1、Lambda表达式概述Lambda表达式是JDK1.8之后的一种语法,是一个匿名函数,是对匿名函数的简写形式,我们可以把 Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递),可以写出更简洁、更原创 2020-06-28 12:11:47 · 33648 阅读 · 6 评论 -
JDK1.8新增时间API
文章目录1、新增时间API概述2、LocalDateTime类的概述获取对象成员方法与静态方法有关获取的方法(get系列方法)格式化日期字符串的方法判断的方法解析的静态方法添加年月日时分秒的方法(plus系列的方法)减去年月日时分秒的方法(minus 系列的方法)指定年月日时分秒的方法(with系列的方法)转换方法3、Instant 时间戳类获取对象的方法 now()设置偏移量的方法获取系统默认时区时间的方法get系列的方法给计算机元年增加秒数4、Duration 类5、Period 类6、Temporal原创 2020-06-27 23:19:36 · 580 阅读 · 0 评论 -
Java中的网络编程详解
文章目录准备知识网络编程(Socket编程)UDP协议传输数据TCP协议传输数据多线程改进上传文本文件与网络编程有关的DOS命令准备知识1、IP、协议、端口详解 点击这里2、网络编程的三要素:IP地址:InetAddress: 网络中设备的标识,不易记忆,可用主机名;端口号:用于标识进程的逻辑地址,不同进程的标识 ;传输协议:通讯的规则常见协议:TCP,UDP3、UDP协议与TCP协议的区别:UDP——发短信将数据源和目的封装成数据包中,不需要建立连接;每个数据报的大小在限制在64原创 2020-06-18 19:23:26 · 2117 阅读 · 2 评论 -
细说Java反射机制
文章目录编译期和运行期Java的类加载类加载器反射反射常用的API获取类的字节码对象获取构造方法获取成员变量获取成员方法反射的优点反射的练习通过反射修改配置文件的内容通过反射越过泛型检查通过反射写一个通用的设置某个对象的某个属性为指定的值编译期和运行期假如我们写了一个Demo.java,并要打印hello world那它需要经过哪些步骤?第一步:通过编译器进行编译,从Java源码 —> Java 字节码这个编译器则是jdk 里的javac 编译器,我们只需 javac Demo.java 即原创 2020-06-18 13:33:39 · 375 阅读 · 0 评论 -
Java语法糖——for-each和枚举
文章目录1、for-each语法糖2、枚举语法糖3、枚举类常见的方法1、for-each语法糖import java.util.HashSet;import java.util.Iterator;public class MyTest { public static void main(String[] args) { double[] nums = new double[5]; for (int i = 0; i < nums.length; i++原创 2020-06-16 19:08:58 · 470 阅读 · 0 评论 -
Java中IO知识点文档
文章目录1、IO流详解2、流的分类3、流的继承关系4、流的嵌套使用FileInputStream与FileOutputStream流BufferdInputStream与BufferdOutputStream流ByteArrayInputStream与ByteArrayOutputStream流ObjectInputstream与ObjectOutputStream流InputStreamReader与OutputStreamWriter流1、IO流详解Java中的字节流与字符流详解Java中杂七杂八原创 2020-06-16 09:06:30 · 452 阅读 · 0 评论 -
Java多线程进阶详解
文章目录1、1、原创 2020-06-11 01:41:56 · 1361 阅读 · 0 评论 -
Java多线程基础全解
文章目录线程引入线程与进程的概念Java中的多线程开发Java程序运行的原理:Java线程的创建方式:Java多线程程序:Java中多线程复制文件线程优先级:多线程下的线程控制休眠线程加入线程礼让线程守护线程中断线程多线程程序另外的实现方式方式1方式2线程引入我们的之前的代码执行路径只有一条,就是main(),顺序执行代码,这种环境称之为单线程环境;但假如程序途中某个环节比较耗时(比如进行大的文件的操作),在他后面的程序必须等待这个耗时的程序执行完成之后再去执行,这样用户体验很不好;我们可以:原创 2020-06-04 13:02:28 · 549 阅读 · 0 评论 -
Java中杂七杂八的流
文章目录有关文件路径的知识数据输入输出流DataInputStream数据输入流内存操作流ByteArrayOutputStream流与ByteArrayInputStream流CharArrayWriter流与CharArrayReader流StringWriter流与StringReader流打印流字符打印流PrintWriter字节打印流PrintStream键盘录入的几种方式随机访问流ZIP压缩输入输出流序列化流与反序列化流与IO流有关的属性集合流的练习歌曲大连唱把一个文件分成多份循环复制修改配置文原创 2020-06-04 03:45:02 · 262 阅读 · 0 评论 -
Java中的IO流概述以及字节流与字符流详解
文章目录IO流概述字节流FileInputStream与FileOutputStream流FileOutputStream流FileInputStream流BufferdInputStream与BufferdOutputStream流(一对高效的字节流)IO流概述输入输出技术并不那么令人兴奋,如果没有读写数据的能力,编写出来的程序会受到很大的限制;IO流就是用来进行数据之间的传输,如何从能够发送字节序列的任何数据源取得输入,如何将输出发送到能够接受字节序列的任何目的地;这些字节序列的源和目的地可以是原创 2020-05-27 12:28:36 · 637 阅读 · 0 评论 -
Java中的文件类及其操作
文章目录File类概述File类与IO流File类的构造方法绝对路径与相对路径File类需要注意的点File类的使用创建文件、文件夹删除文件、文件夹重命名/剪切文件判断功能获取功能获取文件列表File类的练习删除多级文件夹删除多级文件夹下面的.jpg文件File类概述File类与IO流IO流的作用就是进行设备之间的数据传输,数据在计算机上是以文件的形式存储的。我们常见的文件有文本文件、音频文件、视频文件……,Java为了描述文件和文件夹,给我们提供了一个类File。在File类中封装了对用户机器的原创 2020-05-25 12:05:49 · 886 阅读 · 0 评论 -
Java中的异常机制详解
文章目录关于IO流IO流的概述IO流前奏异常机制异常的概述异常继承图解运行期异常交由Java默认处理运行期异常手动处理运行期异常多种异常并列捕获JDK1.7之后的新语法finally块finally块与return关键字编译期异常编译期异常的处理的两种方式处理异常的时机选择异常里面的几个方法关键字throw与throws的区别自定义异常使用异常需要注意的问题关于IO流IO流的概述IO流是用来处理设备之间的数据传输,比如上传文件和下载文件;在上传和下载的时候,可能需要我们去处理一些比如下载中断的问题;这原创 2020-05-24 08:17:54 · 162 阅读 · 0 评论 -
Java中的多态、抽象类、接口、权限修饰符、内部类、方法参数类型及返回值类型问题
1、包进行面对对象的编程时,一项最基本的考虑是:如何将发生变化的东西与保持不变的东西分隔开,这一点对于库来说是非常重要的。那个库的用户必须能依赖自己使用的那部分。如何将组件绑定到单独统一的库单元里。这是通过Java中的关键字package(打包)来实现的。我们用import关键字导入一个完整的库时,就会获得“包”(Package)例如:import java.util.*1、它的作用是导...原创 2019-12-26 09:26:34 · 253 阅读 · 0 评论 -
1060爱丁顿数(Java实现)
英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数” E ,即满足有 E 天骑车超过 E 英里的最大整数 E。据说爱丁顿自己的 E 等于87;现给定某人 N 天的骑车距离,请你算出对应的爱丁顿数 E(≤N);输入格式:输入第一行给出一个正整数 N (≤105),即连续骑车的天数;第二行给出 N 个非负整数,代表每天的骑车距离。输出格式:在一行中给出...原创 2020-04-23 09:59:59 · 261 阅读 · 0 评论 -
1054 求平均值(Java实现)
本题的基本要求非常简单:给定 N 个实数,计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个 “合法” 的输入是 [−1000,1000] 区间内的实数,并且最多精确到小数点后 2 位。当你计算平均值的时候,不能把那些非法的数据算在内;输入格式:输入第一行给出正整数 N(≤100)。随后一行给出 N 个实数,数字间以一个空格分隔。输出格式:对每个非法输入,在一行中输出 ERROR...原创 2020-04-22 12:46:57 · 831 阅读 · 0 评论 -
1051 复数乘法(Java实现)
复数可以写成 (A+Bi) 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 i^2=−1;也可以写成极坐标下的指数形式 (R×e(Pi)),其中 R 是复数模,P 是辐角,i 是虚数单位,其等价于三角形式 R(cos( P ) + i*sin( P ));现给定两个复数的 R 和 P,要求输出两数乘积的常规形式。输入格式:输入在一行中依次给出两个复数的 R1...原创 2020-04-20 21:47:32 · 519 阅读 · 0 评论 -
1050 螺旋矩阵Java实现
本题要求将给定的 N 个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第 1 个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为 m 行 n 列,满足条件:m×n 等于 N;m≥n;且 m−n 取所有可能值中的最小值。输入格式:输入在第 1 行中给出一个正整数 N,第 2 行给出 N 个待填充的正整数。所有数字不超过 104,相邻数字以空格分隔。输出格式:输...原创 2020-04-19 19:41:20 · 290 阅读 · 0 评论 -
1048 数字加密Java实现
本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。输入格式:输入在一行中依次给出 A 和 B,均为不超过 10...原创 2020-04-15 09:46:34 · 506 阅读 · 0 评论 -
1045 快速排序(Java实现)
著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?例如给定 N=5N = 5N=5, 排列是1、3、2、4、5。则:1 的左边没有元素,右边的元素都比它大,所以它可能是主元;尽管 3 的左边元素都比它...原创 2020-04-13 23:25:12 · 420 阅读 · 0 评论 -
1044 火星数字Java实现
思路分析:1、录入要转换的数字个数;2、先判断如果输入的是0-9数字中的1个以上解题思路此题类似于进制转换,火星文为13进制,把它转换为10进制数输出即可。注意:火星文的整13进制数只输出高位,例如:相当于10进制数的20只输出2,火星文中13,只输出高位1,26只输出高位2。这点要在接受输入和输出都要考虑到。步骤: 接受输入,判断是否未数字,如果为数字,则在对应字符串数组中找对应...原创 2020-04-12 16:21:24 · 332 阅读 · 0 评论 -
Java中的方法与一维数组
1、方法的概述和格式说明方法:就是完成特定功能的代码块方法的格式: 访问修饰符 状态修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2 ....) { 方法体; return 返回值;}方法中的形参:用来接收实际参数,主调函数调用方法时有时会传递一些参数辅助方法完成该功能,主调方法中的参数叫实参,被调方法中的参数叫做形参,形参与实参必须个数相同、类型一致...原创 2019-12-02 03:59:48 · 280 阅读 · 0 评论 -
1041 考试座位号Java实现
考试座位号:每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数 N(≤1000),随后 N 行...原创 2020-04-11 11:05:49 · 975 阅读 · 1 评论 -
1040 有几个PAT(Java实现)
字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位§,第 4 位(A),第 6 位(T);第二个 PAT 是第 3 位§,第 4 位(A),第 6 位(T)。现给定字符串,问一共可以形成多少个 PAT?输入格式:输入只有一行,包含一个字符串,长度不超过105,只包含 P、A、T 三种字母。输出格式:在一行中输出给定字符串中包含多少个 PAT。由于...原创 2020-04-10 09:49:00 · 159 阅读 · 0 评论 -
1039 到底买不买(Java实现)
到底买不买小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如在图1中,第3串是小红想做的珠串;那么第1串可以买,因为包含了全部她...原创 2020-04-09 10:39:36 · 269 阅读 · 0 评论 -
1038 统计同成绩学生Java实现
统计同成绩学生本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出。输入格式:输入在第 1 行给出不超过 105 的正整数 N,即学生总人数。随后一行给出 N 名学生的百分制整数成绩,中间以空格分隔。最后一行给出要查询的分数个数 K(不超过 N 的正整数),随后是 K 个分数,中间以空格分隔。输出格式:在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空格分隔,...原创 2020-04-09 09:19:41 · 376 阅读 · 0 评论 -
1037 在霍格沃茨找零钱Java实现
在霍格沃茨找零钱如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱 P 和他实付的钱 A,你的任务是写一个程序来计算他应该被找的零钱。输入格式:输入在 1 行中分别给出 P 和 A,格式为 Galleon.Sickle.Knut...原创 2020-04-09 08:36:41 · 181 阅读 · 0 评论 -
1036 跟奥巴马一起编程Java实现
1036 跟奥巴马一起编程美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长 N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。输出格式:输出由给定字符 C 画...原创 2020-04-09 08:32:23 · 350 阅读 · 0 评论 -
1035 插入与归并Java实现
1035 插入与归并根据维基百科的定义:插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。归并排序进行如下迭代操作:首先将原始序列看成 N 个只包含 1 个元素的有序子序列,然后每次迭代归并两个相邻的有序子序列,直到最后只剩下 1 个有序的序列。现给定原始序列和由某排序算法产生的中...原创 2020-11-16 10:18:35 · 260 阅读 · 0 评论 -
1034 有理数四则运算(Java实现)
有理数四则运算本题要求编写程序,计算 2 个有理数的和、差、积、商。输入格式:输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为 0。输出格式:分别在 4 行中按照 有理数1 运算符 有理数2 = 结果 的格式顺序输出 2 个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的最简形式 ...原创 2020-11-16 10:18:45 · 434 阅读 · 0 评论 -
1033 旧键盘打字(Java实现)
1033 旧键盘打字旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?输入格式:输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过 10^5 个字符的串。可用的字符包括字母 [a-z, A-Z]、数字 0-9、以及下划线 _(代表空格)、,、...原创 2020-04-05 11:31:58 · 289 阅读 · 0 评论 -
1032 挖掘机技术哪家强(Java实现)
挖掘机技术哪家强为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第 1 行给出不超过 10^5 的正整数 N,即参赛人数。随后 N 行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从 1 开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。输出格式:在一行中给出总得分最高的学校的编号、...原创 2020-04-04 10:21:43 · 428 阅读 · 0 评论 -
1031 查验身份证(Java实现)
查验身份证一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:0 1 2 3 4 5 6 7 8 9 10M:1 0 X 9 8 7 6 5 4 3 2...原创 2020-04-03 10:27:10 · 1196 阅读 · 0 评论 -
Java实现1030 完美数列
1030 完美数列给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数 N 和 p,其中 N(<=10^5),是输入的正整数的个数, p <=(10^9)是给定的参数。第二行给出 N 个正整数,每个数...原创 2020-04-02 13:56:22 · 357 阅读 · 0 评论 -
Java实现1029 旧键盘
旧键盘旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。输入格式:输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 0-9、以及下划线 _(代表空格)组成。题目保证 2 个字符串均非空。输出格式:按照发现顺序,...原创 2020-04-01 07:57:58 · 187 阅读 · 0 评论 -
Java实现1028 人口普查
人口普查某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。输入格式:输入在第一行给出正整数 N,取值在(0,10^5];随后 N 行,每行给出 1...原创 2020-03-31 17:11:49 · 764 阅读 · 0 评论 -
Java实现PTA 1027 打印沙漏
打印沙漏本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印:***** *** * ********所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。输入格式:...原创 2020-03-30 22:49:25 · 1034 阅读 · 1 评论 -
Java实现1025 反转链表
反转链表给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转。例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4;如果 K 为 4,则输出应该为 4→3→2→1→5→6,即最后不到 K 个元素不反转。输入格式:每个输入包含 1 个测试用例。每个测试用例第 1 行给出第 1 个结点的地址、结点总个数正整数 N (≤10的5次方)...原创 2020-03-29 11:26:45 · 263 阅读 · 2 评论 -
Java实现1024 科学计数法
科学计数法:科学技术法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数 A,请编写程序按普通数字表示法输出 A,并保证所有有效位都被保留。输入格式:每个输入包含 1 个测试...原创 2020-03-28 12:36:10 · 1281 阅读 · 0 评论 -
Java实现组个最小数
给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。现给定数字,请编写程序输出能够组成的最小的数。输入格式:输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、数字 1、……数字 9 的个数。整数间用...原创 2020-03-26 21:18:58 · 302 阅读 · 0 评论