
java基础
unascribed
欢迎观看
展开
-
java程序中不用switch的打工人不是好程序员
呸,标题党简单使用 switch的case语句可以处理int,short,byte,char类型的值,枚举类型(JDK1.5支持)String(JDK1.7支持),但是不能处理long、Double,等类型,因为short,byte,char都会转换成int进行处理,这一点也可以从生成的字节码看出。 @Test public void test05(){ int i=0; switch (i){ case 0:原创 2020-12-10 19:20:20 · 1130 阅读 · 2 评论 -
过滤器、拦截器、切面之间的比较
过滤器、拦截器、切面之间的比较一、过滤器(Filter)实现原理过滤器是基于函数回调来实现使用场景过滤url级别权限、过滤敏感词、设置字符编码等具体使用实现javax.servlet.Filter接口,重写init()、doFilter()、destroy()方法具体解释在代码注释中/** * @author lqh * @date 2020/12/3 */@Component@WebFilter(urlPatterns = "/**" , f原创 2020-12-04 14:22:24 · 1383 阅读 · 0 评论 -
java优雅的处理程序中的异常
java优雅的处理程序中的异常一、自定义异常类(1)继承 Exception 或 RuntimeException(2)定义构造方法/** * @author lqh * @date 2020/9/22 * 业务逻辑异常 */public class ServiceException extends RuntimeException{ private String code; private String msg; public ServiceException原创 2020-09-23 13:19:57 · 1547 阅读 · 2 评论 -
集合顶层接口Collection和Map以及相关数据结构
Collection和Map以及相关数据结构工欲善其事,必先利其器。本片内容讲述java中的Collection和Map所用到的数据结构以及相关结构。数据结构顺序存储结构(用一段地址连续的存储单元一次存储线性表的数据元素) 数组:相同数据类型的元素按一定顺序排列的集合。 特点: 1.数组的内存是连续的,想要访问那个元素直接从数组的首地址向后偏移就可以访问到 2.数组插入和删除数据效率低,如果在头部删除,插入,时间复杂度是O(n):原创 2020-08-04 13:25:04 · 942 阅读 · 1 评论 -
Calendar类日常使用
Calendar简介Calendar:它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。Java官方推荐使用Calendar来替换Date的使用Calendar类的实例 该类是一个被abstract修饰的抽象类,且构造方法被protected修饰,因此不能直接通过new创建对象,而是通过静态方法创建,返回一个Calendar对象(该对象为Calendar的子类对象)原创 2020-07-27 18:11:21 · 697 阅读 · 0 评论 -
高性能条件下的StringBuilder使用及JAVA8新增StringJoiner类学习
StringBuilder源码学习(一天一篇)原创 2020-05-12 15:48:01 · 565 阅读 · 0 评论 -
ConcurrentModificationException异常之iterator和Iterable
##ConcurrentModificationException异常之iterator和Iterable本文将介绍iterator和Iterable的联系,以及由迭代器遍历对集合操作产生的问题 首先有必要说一下的是for-each也叫增强for循环(JDK1.5提出的),for-each其实是for循环的一个特殊简化版,专门用来操作数组和集合,其内部原理其实是迭代器。一、异常下面我们来看两个抛出异常的例子 Map<Integer,String> map=new原创 2020-07-20 10:44:23 · 727 阅读 · 0 评论 -
遍历HashMap的6种方式,不信你全都了解
遍历HashMap 本文将介绍遍历HashMap的六种方式,jdk版本1.8。HashMap的使用频率在所有map中确实属于比较高的。因为它可以满足我们大多数的场景了。 首先,介绍几个本文中所涉及到的属性values():方法是获取集合中的所有的值----没有键,没有对应关系,KeySet():将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。entrySet():Set<Map.Entry<原创 2020-07-17 17:37:23 · 704 阅读 · 0 评论 -
阿里开发手册:使用索引访问用 String 的 split 方法得到的数组时,需做最后一个分隔符后有无内容的检查
使用索引访问用 String 的 split 方法得到的数组时,需做最后一个分隔符后有无内容的检查一、问题来源自阿里开发手册 出现此问题肯定与String的split方法有关,首先介绍下String的split方法的使用二、正则表达式用法单正则表达式构造方法 public String[] split(String regex) { return split(regex, 0); } 该方法就是给定的表达式和限制参数0来调用两参数split方法。原创 2020-07-16 20:11:44 · 2008 阅读 · 0 评论 -
UnsupportedOperationException之数组和List集合之间的转换
UnsupportedOperationException之数组和List集合之间的转换原创 2020-07-09 11:11:50 · 961 阅读 · 0 评论 -
集合排序涉及到的接口Comparable and Comparator
Comparable and Comparator一、Comparable1. API解释(源码翻译神器电梯直达) 此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法。 实现此接口的对象列表(和数组)可以通过 Collections.sort(和 Arrays.sort)进行自动排序。实现此接口的对象可以用作有序映射中的键或有序集合中的元素,无需指定比较器。 对于类 C 的每一个 e1 和 e2 来说,当且仅当 e1原创 2020-06-24 13:59:17 · 781 阅读 · 0 评论 -
java源码分析~浅谈String源码
String源码学习 本篇文章讨论String的源码,所有涉及到的源代码都是基于JDK1.8。 对于java程序员来说,String类再熟悉不过了,面试中也经常会被问到。但是,会用不是目的,我们要了解它其中的奥妙(设计思想),以方便在技术上有进一步的提高。String设计中的享元模式一、实现接口public final class String implements java.io.Serializable, Comparable<String>, CharSequ原创 2020-05-12 15:46:58 · 354 阅读 · 1 评论 -
java-IO基本知识点
IO 本节内容在我们开发需求中十分常见,我个人认为理解java IO知识点的重中之重在于理解java.io包下每一种流之间存在的关系。下面我将关系图、基本操作放出(自己敲一遍,且找一下各类存在的关系有助于加深印象)。一、字节流 1.关系图 2.使用代码package com.example.io;import org.junit.jupiter.api.Test;import java.io.*;/** * @author lqh * @date 2020/6/10 */pu原创 2020-06-11 11:35:51 · 765 阅读 · 0 评论 -
复习使用~File操作
File操作 /** * 通过“user.dir”获取jvm的当前工作目录 */ String workingDir=System.getProperty("user.dir"); System.out.println(workingDir); /** * 使用System.setProperty可以更改当前工作目路 */ System.setPropert原创 2020-06-10 16:55:57 · 703 阅读 · 0 评论 -
复习使用~java泛型
java泛型 package com.example.generic;import org.junit.jupiter.api.Test;import java.util.ArrayList;import java.util.List;/** * @author lqh * @date 2020/6/9 */public class GenericMethodTest { @Test public void testGenericWildcard(){原创 2020-06-09 19:58:19 · 607 阅读 · 0 评论 -
复习使用~java枚举类的使用(接口,自定义,enum,map)
今天复习枚举类时,印象不是很深刻,通过查找资料,重新整理了一下枚举类具体的使用。由于懒的原因(就像java中的语法糖的出现),直接上传代码,注释直接放在代码中,不再进行排版,谅解。枚举类 枚举值的定义package com.example.enumpackage;/** * @author lqh * @date 2020/6/9 */public class EnumCreateTest { /** * 枚举类 * 类的对象只有有限个,确定.原创 2020-06-09 15:14:31 · 964 阅读 · 0 评论 -
复习使用:抽象类、接口、jdk1.8新增静态方法和默认方法
抽象类、接口、jdk1.8新增静态方法和默认方法抽象类package com.example.abstractandinterface;public abstract class Employee { private int id; private String name; private int age; public Employee(int id,String name,int age){ this.id=id; this.nam原创 2020-06-08 17:53:03 · 1340 阅读 · 0 评论 -
浅谈java中的内部类
内部类一、什么是内部类?在java中允许在类的内部再定义一个类,这个定义在类内部的类称之为内部类,包含内部类的类称之为外部类。java中的内部类只是java编译器的概念,对于java的虚拟机而言,它是没有java内部类的概念的,也就是说java中的内部类最后也会被编译成一个独立的class文件。二、为什么使用内部类? 在《Think in java》一书中提到 —— 使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内原创 2020-06-08 15:56:35 · 157 阅读 · 0 评论