![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java语法基础
文章平均质量分 62
只会走路小飛侠
这个作者很懒,什么都没留下…
展开
-
Stream流的常见终结方法
Student student1 = new Student("蜘蛛精", 26, 172.5);Student student2 = new Student("蜘蛛精", 26, 172.5);// 找出身高超过170的学生对象, 并把学生对象的名字和身高, 存入一个 Map集合并返回。// 找出身高超过170的学生对象, 并放到一个新集合中去返回。// 找出身高超过170的学生对象, 存入数组中。// 找出身高最矮的学生对象, 并输出。// 找出身高最高的学生对象,并输出。// 流对象只能收集一次!原创 2024-08-02 12:40:40 · 403 阅读 · 0 评论 -
Stream流常用的中间方法
/ 由于身高为 Double类型数据,比较函数返回类型为 int类型,所以sorted当中使用 Double类的 Compare函数,// map为映射方法,在此处将处理对象从 Student类型转换为了 name类型, distinct为去除重复元素的方法。// filter根据条件过滤元素, sorted对元素进行排序,默认为升序, forEach遍历集合中所有元素。// 找出身高超过 168的学生叫什么名字,取出重复的名字,并输出。// 取出身高最高的三名学生,并输出。原创 2024-08-02 10:52:33 · 259 阅读 · 0 评论 -
Stream流的获取方法
stream1.filter(s -> s.contains("德")).forEach(s -> System.out.println(s));Collections.addAll(set, "刘德华", "张曼玉", "张学友", "玛德");Collections.addAll(list, "张三丰", "张无忌", "周芷若");String[] names = {"张翠山", "东方不败", "独孤求败"};map.put("卡尔扎巴", 168.3);// 获取 Map集合的 Stream流。原创 2024-08-01 16:31:12 · 384 阅读 · 0 评论 -
Stream流介绍
filter(s -> s.startsWith("张") && s.length() == 3).collect(Collectors.toList());Collections.addAll(names, "张三丰", "周芷若", "赵敏", "张无忌", "张强");if (name.startsWith("张") && name.length() == 3) {//[张三丰, 周芷若, 赵敏, 张无忌, 张强]//[张三丰, 张无忌]//[张三丰, 张无忌]// 体验Stream流的简便。原创 2024-08-01 15:49:36 · 199 阅读 · 0 评论 -
集合的嵌套使用
/{江苏省=[南京市, 常州市, 扬州市], 湖北省=[武汉市, 孝感市, 宜昌市]}System.out.println(map.get("江苏省"));//[南京市, 常州市, 扬州市]Collections.addAll(cities1, "南京市", "常州市", "扬州市");Collections.addAll(cities2, "武汉市", "孝感市", "宜昌市");map.put("江苏省", cities1);map.put("湖北省", cities2);原创 2024-08-01 15:26:26 · 341 阅读 · 0 评论 -
Map集合的遍历方式
/{蜘蛛精=169.8, 牛魔王=183.6, 至尊宝=169.5, 紫霞仙子=162.8}//[蜘蛛精, 牛魔王, 至尊宝, 紫霞仙子]//调用 Map集合的 entrySet方法,把 Map集合转换成键值对类型的 Set集合。map.put("紫霞仙子", 162.8);map.put("蜘蛛精", 169.8);map.put("至尊宝", 169.5);map.put("牛魔王", 183.6);// 通过键值对的形式对map集合进行遍历。//2.遍历全部的键,根据键获取对应的值。原创 2024-08-01 09:56:45 · 254 阅读 · 0 评论 -
Map类中的常用方法
System.out.println(map.get("张三"));//null //当集合中没有对应的键时,会输出null。System.out.println(map.containsKey("手表"));System.out.println(map.containsKey("手机"));System.out.println(map.remove("手表"));//获取Map集合的所有值,保存在Collection集合中。//获取Map集合中的全部键,保存在Set集合中。//判断集合是否为空。原创 2024-07-31 15:39:37 · 305 阅读 · 0 评论 -
Map集合常用种类及特点
/{null=null, 手表=220, 手机=2, java=2}//{手表=220, 手机=2, java=2, null=null}map1.put("手机", 2);map2.put("手机", 2);原创 2024-07-31 15:04:16 · 285 阅读 · 0 评论 -
Collections工具类的使用
Student{name='紫霞仙子', age=22, height=169.8},[Student{name='至尊宝', age=26, height=166.0},Student{name='蜘蛛精', age=23, height=169.7},Student{name='蜘蛛精', age=23, height=169.7},Student{name='蜘蛛精', age=23, height=169.7},Student{name='蜘蛛精', age=23, height=169.7},原创 2024-07-31 10:26:46 · 219 阅读 · 0 评论 -
可变参数的使用
/也可以传入一个数组。// 特点: 对于可变参数, 可以不输入参数, 也可以输入一个或多个参数。// 可变参数在方法内部,本质上是一个数组。一个参数列表中只能有一个可变参数。可变参数必须放在形参列表的最后面。认识可变参数,掌握其作用。原创 2024-07-31 09:42:15 · 404 阅读 · 0 评论 -
集合的并发修改异常处理
/[王麻子, 李四, 王昭, 李贵, 赵王, 李世民]it.remove();//[王麻子, 王昭, 赵王]// list.remove(name);//产生并发修改异常。if (name.contains("李")) {list.add("王麻子");list.add("李世民");list.add("李四");list.add("王昭");list.add("李贵");list.add("赵王");原创 2024-07-30 16:01:48 · 294 阅读 · 0 评论 -
Set集合特点
/ LinkedHashSet特点: 有序,不重复,无索引。// TreeSet特点: 可排序,不重复,无索引。// HashSet特点: 无序,不重复,无索引。// [555, 666, 777, 888] 默认升序。就需要去类中重写 hashCode和 equals方法。原创 2024-07-30 10:38:54 · 301 阅读 · 0 评论 -
List集合特点及常用方法
/ 5. public E set(int index, E element): 修改索引位置处的元素,并返回原来的数据。//[蜘蛛精, 蜘蛛精, 紫霞仙子, 至尊宝, 牛夫人]// 3. public E remove(int index): 根据索引删除元素,并返回被删除元素。//[蜘蛛精, 蜘蛛精, 至尊宝, 牛夫人]System.out.println(list.set(3, "牛魔王"));原创 2024-07-27 10:45:03 · 413 阅读 · 0 评论 -
Collection集合的遍历方式
String[] names = {"迪丽热巴", "古力娜扎", "西起哈哈"};//[赵敏, 小昭, 素素, 灭绝]// //System.out.println(it.next());// //next(): 获取当前位置元素,并将迭代器对象指向下一个元素处。c.add("赵敏");c.add("小昭");c.add("素素");c.add("灭绝");c.add("赵敏");c.add("小昭");c.add("素素");c.add("灭绝");c.add("赵敏");原创 2024-07-25 16:27:00 · 371 阅读 · 0 评论 -
单列集合Collection常用API
/ 6. public boolean remove(E e): 删除某个元素,如果集合中有多个相同元素,默认删除第一个。// 5. public boolean contains(Object obj): 判断集合中是否包含某个元素。// 7. public Object[] toArray(): 把集合转成数组。// 1. public boolean add(E e): 添加元素。// 4. public int size(): 获取集合的大小。//把一个集合中的数据全部加到另一个集合当中去。原创 2024-07-25 11:19:35 · 244 阅读 · 0 评论 -
自定义异常
/这个异常类必须继承自RuntimeException,才能成为一个运行时异常类,而不是一个编译时异常类。//这个异常类必须继承自Exception,才能成为一个编译时异常类,而不是一个运行时异常类。//用一个异常对象封装这个问题,并将问题抛到上一层。//用一个异常对象封装这个问题,并将问题抛到上一层。//throws用在方法上,用于抛出方法内部的异常。//throw将异常对象抛到上一层。//throw将异常对象抛到上一层。//掌握自定义异常,以及异常的作用。//掌握自定义异常,以及异常的作用。原创 2024-07-24 11:13:37 · 223 阅读 · 0 评论 -
枚举的定义及使用
/输出该对象在枚举中的索引 //2。//根据对象名拿到枚举对象。System.out.println("展示美女图");System.out.println("展示帅哥图");//1.枚举类的构造器是私有的,不能对外创建对象。//2.枚举第一行的对象都被以常量的形式记录。//注意:枚举的第一行必须罗列的是枚举对象的名字。//3.枚举类提供一些额外的API。//枚举都是最终类,不可以被继承。原创 2024-07-24 10:04:28 · 261 阅读 · 0 评论 -
LocalDateTime类
minusHours、 minusMinutes、 minusSeconds、 minusNanos : 某个信息做减法, 返回新的时间对象。-plusHours、 plusMinutes、 plusSeconds、 plusNanos : 某个信息做加法, 返回新的时间对象。-withHour、 withMinute、 withSecond、 withNano : 修改时间, 返回新的时间对象。LocalDateTime : 代表本地日期、时间(年、月、日、星期、时、分、秒、纳秒)原创 2024-07-24 09:04:47 · 378 阅读 · 0 评论 -
计算时间间隔的类
/第二个参数减第一个参数。//Period对象表示时间的间隔对象。原创 2024-07-24 09:05:16 · 125 阅读 · 0 评论 -
Calendar抽象类的定义及使用
Calendar抽象类 : 代表的是系统此刻时间对应的日历, 通过它可以单独获取、修改时间中的年、月、日、时、分、秒等。public void add(int field, int amount) : 为某个字段增加/减少指定的值。public void set(int field, int value) : 修改日历中某个字段信息。public static Calendar getInstance() : 获取当前时间的日历对象。Calendar.YEAR : 获取年份信息(以此类推)原创 2024-07-24 09:05:27 · 346 阅读 · 0 评论 -
ZoneDateTime类
static ZonedDatetime ofXxx() : 获取指定时间的ZonedDateTime对象。static ZonedDatetime now() : 获取当前时间的ZonedDateTime对象。ZonedDateTime minusXxx(时间) : 减少时间系列的方法。ZonedDateTime withXxx(时间) : 修改时间系列的方法。ZonedDateTime plusXxx(时间) : 增加时间系列的方法。原创 2024-07-24 09:05:06 · 93 阅读 · 0 评论 -
Instant类 : 用于表示时间的对象
System.out.println("减1000毫秒:" + now.minusMillis(1000));System.out.println("加1000毫秒:" + now.plusMillis(1000));static Instant now() : 获取当前时间的Instant对象(标准时间而非北京时间)System.out.println("减五秒钟:" + now.minusSeconds(5));System.out.println("当前世界标准时间为:" + now);原创 2024-07-24 09:05:43 · 344 阅读 · 0 评论 -
SimpleDateFormat类 : 用于日期类的格式化
SimpleDateFormat format2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");public SimpleDateFormat(String pattern) : 创建一个日期格式化对象, 根据字符串指定格式。public final Date parse(String source) : 将日期字符串, 转换为日期对象。//创建一个日期格式化对象, 根据字符串指定格式。//将日期字符串, 转换为日期对象。//将日期对象转换为字符串。原创 2024-07-23 11:32:08 · 138 阅读 · 0 评论 -
DateTimeFormatter类的使用(格式化)
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年M月d日");LocalDateTime.parse("解析字符串", 格式化对象);System.out.println("格式化之后:" + result);LocalDate.parse("解析字符串", 格式化对象);LocalTime.parse("解析字符串", 格式化对象);System.out.println("格式化之前:" + now);原创 2024-07-23 11:25:08 · 274 阅读 · 0 评论 -
Date类的定义及使用
public long getTime() : 返回从 1970年 1月 1日 00:00:00走到此刻的总毫秒数。public void setTime(long time) : 设置日期对象的时间为当前时间毫秒值所对应的时间。public Date(long time) : 把时间毫秒值转换为 Date 日期对象。public Date() : 将当前时间, 封装为 Date 日期对象。//设置日期对象的时间为当前时间毫秒值所对应的时间。//把时间毫秒值转换为 Date 日期对象。原创 2024-07-23 11:20:32 · 179 阅读 · 0 评论 -
正则表达式的使用
今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。"将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰能,是以众议举宠为督。[a-z&&[^m-p]] a 到 z, 除了 m 到 p ([a-lq-z])原创 2024-07-23 10:50:34 · 365 阅读 · 0 评论 -
Arrays类常用方法
public static int binarySearch(类型[] a, 类型 key) : 查找元素在数组中的索引(二分查找)public static boolean equals (类型[] a, 类型[] b) : 比较两个数组是否相同。public static String toString (类型[] a) : 将数组元素拼接为带有格式的字符串。public static void sort (类型[] a) : 对数组进行默认升序排序。//将数组元素拼接为带有格式的字符串。原创 2024-07-23 10:45:52 · 168 阅读 · 0 评论 -
System类中的常用方法
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) : 数组拷贝。-返回1970年1月1日0时0分0秒到现在所经历的毫秒值。public static void exit(int status) : 终止当前运行的java虚拟机, 非零表示异常终止。public static long currentTimeMills() : 返回当前系统的时间毫秒值形式。原创 2024-07-23 10:39:38 · 284 阅读 · 0 评论 -
Object类的定义及使用
/true (因重写equals方法,所以比较对象内容)区分:String类的equals方法默认比较两个字符串的内容(由于相同内容的String对象只会存在一份)public String toString() 返回该对象的字符串表示 / toString 为 Object类中的方法。hashCode() : 返回对象内存地址 + 哈希算法 算出的整数 (哈希值)getClass().getName() : 全类名(包名加类名)原创 2024-07-23 10:29:52 · 259 阅读 · 0 评论 -
Math类中的方法及使用
public static double random() : 返回值为double的随机数, 范围是 [0.0, 1.0)public static double pow(double a, double b) : 返回a的b次幂的值。public static double floor(double a) : 向下取整。public static int max(int a, int b) : 获取较大值。public static double ceil(double a) : 向上取整。原创 2024-07-23 10:22:04 · 252 阅读 · 0 评论 -
包装类Integer的定义及使用
1. public int intValue() : 以 int 类型返回 Integer 的值。public static int parseInt(int i) : 将数字字符串转换为数字。1. public Integer(int value) : 通过构造方法(不推荐)手动拆箱: 调用方法, 手动将包装类, 转换成基本数据类型。// 2. 准备一个数字数组, 准备存储转换后的数字。包装类: 将基本数据类型, 包装成类, 变成引用数据类型。手动装箱: 调用方法, 手动将基本数据类型, 包装成类。原创 2024-07-23 10:17:54 · 366 阅读 · 0 评论 -
BigDecimal类: 解决小数运算中, 精度不准确的问题
public BigDecimal divide(BigDecimal b, 精确位数, 舍入模式) : 除法。public BigDecimal subtract(BigDecimal b) : 减法。public BigDecimal multiply(BigDecimal b) : 乘法。public BigDecimal divide(BigDecimal b) : 除法。//类型转换后, 便于计算。public BigDecimal add(BigDecimal b) : 加法。原创 2024-07-23 10:13:44 · 290 阅读 · 0 评论 -
Lambda表达式
System.out.println("匿名内部类重写后的show方法...");System.out.println("Lambda表达式重写后的show方法...");3.如果Lambda表达式的方法体代码只有一行代码,可以省略大括号不写,同时省略代码尾部分号。Lambda表达式:编译之后,没有一个单独的.class字节码文件。匿名内部类:编译之后,产生一个单独的.class字节码文件。注意:Lambda表达式,只允许操作函数式编程接口(有且仅有一个抽象方法的接口)作用:简化匿名内部类的代码写法。原创 2024-07-23 10:01:14 · 173 阅读 · 0 评论 -
JDK9中接口的新特性
System.out.println("start方法执行...");1.public可以省略,private不可以省略。System.out.println("end方法执行...");System.out.println("记录日志...");-作用:方便接口内部编程。接口中允许定义私有方法。原创 2024-07-23 09:22:47 · 395 阅读 · 0 评论 -
JDK8中的接口新特性
/接口并不是严格意义上的父类,所以super前带有接口名。3.如果实现了多个接口,多个接口中存在相同的默认方法,实现类必须重写默认方法。2.接口中的静态方法,只允许使用接口名来调用,不允许实现类通过对象调用。2.默认方法可以被实现类重写,但需要去掉default关键字。1.public可以省略,default不可以省略。1.public可以省略,但static不能省略。1.允许定义非抽象方法,需要加入default关键字。-作用:利于解决接口升级的问题。原创 2024-07-23 09:20:32 · 376 阅读 · 0 评论 -
内部类的定义及使用
/静态类访问非静态变量,所以通过对象访问。创建对象格式: 外部类名.内部类名 对象名 = new 外部类名(). new 内部类名();System.out.println("匿名内部类...show");创建对象格式:外部类名.内部类名 对象名 = new 外部类名.内部类名();useInter(new Inter() { //匿名内部类。概述:匿名内部类本质上是一个特殊的局部内部类(定义在方法内部)//答案:转入该接口的实现类的对象。原创 2024-07-23 09:11:59 · 337 阅读 · 0 评论 -
代码块的定义及使用
System.out.println("static...Student类的静态代码块");-特点:每次在创建类的对象的时候,会优先执行构造代码块,然后执行构造方法创建对象。System.out.println("Student类空参构造方法运行中...");-作用:将多个构造方法中重复的代码抽取到构造代码块中,从而提升代码的复用性。System.out.println("Student类的构造代码块");代码块:使用 { } 括起来的代码称为代码块。原创 2024-07-23 08:54:13 · 215 阅读 · 0 评论 -
多态的使用方法
/多态创建对象,调用静态成员 //Fu...print。//成员变量多态演示 //10。用处:方法的形参定义为父类类型,这个方法便可以接收到该父类的任意子类对象了。有:编译通过,但是运行的时候,一定会执行子类的方法逻辑。//成员方法多态演示 //Zi...show。2.成员方法:编译看左边(父类),运行看右边(zi类)1.成员变量:编译看左边(父类),运行看左边(父类)原创 2024-07-21 20:45:45 · 273 阅读 · 0 评论 -
接口的基本概念与操作
2.类和接口之间:实现关系, 可以单实现,也可以多实现,甚至可以在继承一个类的同时,实现多个接口。1.类和类之间:继承关系, 只支持单继承,不支持多继承,但可以多层继承。2.成员方法:只能是抽象方法,因为系统会默认加入以下两个关键字。1.成员变量:只能定义常量,因为系统会默认加入以下三个关键字。3.接口和接口之间:继承关系, 可以单继承,也可以多继承。接口和类之间是实现关系,通过implements关键字来完成。思路:如果发现一个类,所有的组成都是抽象方法。接口:体现的思想就是声明(规则)原创 2024-07-21 20:24:48 · 382 阅读 · 0 评论 -
抽象类的基本用法
/abstract修饰符与final、private、static修饰符冲突,不能同时使用。System.out.println("猫吃鱼...");System.out.println("狗吃肉...");抽象类:无法实例化,只能被其他类继承。内部允许编写抽象方法。(1)要么重写抽象类中的所有抽象方法。抽象方法:本身并无具体内容,必须被子类重写的方法。3.抽象类中可以存在普通方法。2.抽象类存在构造方法。1.抽象类不能实例化。原创 2024-07-21 20:17:47 · 170 阅读 · 0 评论