验证身份证号注解
验证身份证号注解注解 IDCardValid.java
123456789101112131415161718192021222324252627package com.sc.springboot.domain;import javax.validation.Constraint;import javax.validation.Payload;import java.lang.annotation.*;// 注解可以放在xx上@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})// java文档@Documented//什么范围生效@Retention(RetentionPolicy.RUNTIME)//约束类@Constraint( validatedBy = IDCardValidator.class)pub ...
java面试宝典
附加题:1、&和&&区别123&和&&都可以用作逻辑与运算符,表示逻辑与(and)。当运算符两边的表达式的结果都为true时,整个运算结果才为true。否则,只要有一方为false。则结果为false&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作
2、jdk和jre区别12jdk是java开发工具包,里面包含jre和java开发工具,比如:java.exe(java运行工具) javac.exe(java编译工具) jar.exe(打包工具)jre是java程序运行环境 包含jvm和核心类库
3、switch支持的数据类型1byte、short、int、char、String、枚举 以上基本数据类型对应的包装类
4、JVM内存划分123456789101112131415栈内存: 存储方法内部声明的局部变量 方法声明的参数和大括号{}内部声明的变量都属于局部 ...
无题
int和Integer的区别(基本数据类型和包装类的区别)
int的默认值是0,而Integer默认值是null
int变量存储本身,Integer变量存储内存地址
int可以直接使用 Integer必须实例化对象
int是基本数据类型,Integer是int的包装类
Collection和Collections的区别
collection是集合接口,有list和set两子接口
collections是集合工具类,提供了一系列的静态方法对集合进行操作
数组转集合,集合转数组
集合转数组:
list.toArray()
数组转集合:
Arrays.asList()
Math.random()技巧
Math.random()巧用1.打开Java中的Math工具类查看random()方法
返回的是double类型,返回值是[0,1) 左包右不包的double数,但我们一般有要求的是[min,max]这样的值
2.随机字符
random()方法产生的随机数在0.0和1.0之间,乘以128后,其值在0.0和128.0之间,将它转换为char类型后,用if来判断是否在’A’ 和’Z’之间。
12345678910public class IsUpper{ public static void main(String [] args){ char ch; ch = ( char ) ( Math.random() * 128); if ( ch >= 'A' && ch <= 'Z'){ System.out.println("Yes!");} else{ System.out.println ...
力扣第一题两数相加
力扣第一题两数相加题目描述:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
示例 1:
123输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:
12输入:nums = [3,2,4], target = 6输出:[1,2]
示例 3:
12输入:nums = [3,3], target = 6输出:[0,1]
提示:
2 <= nums.length <= 104
-109 <= nums[i] <= 109
-109 <= target <= 109
只会存在一个有效答案
进阶:你可以想出一个时间复杂度小于 O(n2) 的算法吗?
1
第18章:随堂复习与企业真题(JDK8-17新特性)
第18章:随堂复习与企业真题(JDK8-17新特性)
一、随堂复习1. JDK新特性的概述
几个重要的版本
jdk 5.0 / jdk 8.0 :里程碑式的版本
jdk9.0 开始每6个月发布一个新的版本
LTS : jdk8 、 jdk 11 、 jdk 17
如何学习新特性
1234567> 角度1:新的语法规则 (多关注) 自动装箱、自动拆箱、注解、enum、Lambda表达式、方法引用、switch表达式、try-catch变化、record等> 角度2:增加、过时、删除API StringBuilder、ArrayList、新的日期时间的API、Optional等> 角度3:底层的优化、JVM参数的调整、GC的变化、内存结构(永久代--->元空间)
2. JDK8:lambda表达式2.1 什么情况下可以使用lambda表达式
在给函数式接口提供实例时,都可以考虑使用lambda表达式。
基本语法的使用(重要)
2.2 函数式接口
常见的函数式接口。Comparator \ Runnable \ java.util.func ...
第17章:随堂复习与企业真题(反射机制)
第17章:随堂复习与企业真题(反射机制)
一、随堂复习1. 反射的概述(熟悉)
Java给我们提供了一套API,使用这套API我们可以在运行时动态的获取指定对象所属的类,创建运行时类的对象,调用指定的结构(属性、方法)等。
API:
java.lang.Class:代表一个类
java.lang.reflect.Method:代表类的方法
java.lang.reflect.Field:代表类的成员变量
java.lang.reflect.Constructor:代表类的构造器
… …
反射的优点和缺点
优点:
提高了Java程序的灵活性和扩展性,降低了耦合性,提高自适应能力
允许程序创建和控制任何类的对象,无需提前硬编码目标类
缺点:
反射的性能较低。
反射机制主要应用在对灵活性和扩展性要求很高的系统框架上
反射会模糊程序内部逻辑,可读性较差。
反射,平时开发中,我们使用并不多。主要是在框架的底层使用。
2. Class:反射的源头
Class的理解 (掌握)
12针对于编写好的.java源文件进行编译(使用javac.exe),会生成一个或多个.class ...
第16章:随堂复习与企业真题(网络编程)
第16章:随堂复习与企业真题(网络编程)
一、随堂复习1. 网络编程概述
计算机网络:略
网络编程的目的:直接或间接地通过网络协议与其它计算机实现数据交换,进行通讯。
需要解决的三个问题:
问题1:如何准确地定位网络上一台或多台主机
问题2:如何定位主机上的特定的应用
问题3:找到主机后,如何可靠、高效地进行数据传输
2. 要素1:IP地址
使用具体的一个ip地址对应具体的一个互联网上的主机
IP分类:
角度一:IPv4、IPv6
角度二:公网地址、私网地址(或局域网)
使用InetAddress类表示IP地址
实例化:getByName(String host) 、getLocalHost()
常用方法:getHostName() 、getHostAddress()
3. 要素2:端口号
用于区分同一台主机上的不同的进程
不同的进程分配不同的端口号
范围:0-65535
4. 要素3:网络通信协议
这里有两套参考模型
OSI参考模型:模型过于理想化,未能在因特网上进行广泛推广
TCP/IP参考模型(或TCP/IP协议):事实上的国际标准。
在 ...
第15章:随堂复习与企业真题(File类与IO流)
第15章:随堂复习与企业真题(File类与IO流)
一、随堂复习1. File类的使用
File类的一个实例对应着磁盘上的一个文件或文件目录。 —-> “万事万物皆对象”
(熟悉)File的实例化、常用的方法
File类中只有新建、删除、获取路径等方法,不包含读写文件的方法。此时需要使用IO流
2. IO流的概述
IO流的分类
流向:输入流、输出流
处理数据单位:字节流、字符流
流的角色:节点流、处理流
IO的4个抽象基类:InputStream \ OutputStream \ Reader \ Writer
3. 节点流之:文件流
FileInputStream \ FileOutputStream \ FileReader \ FileWriter
(掌握)读写数据的过程。
步骤1:创建File类的对象,作为读取或写出数据的端点
步骤2:创建相关的流的对象
步骤3:读取、写出数据的过程
步骤4:关闭流资源
4. 处理流之一:缓冲流
BufferedInputStream \ BufferedOutputStream \ BufferedReader \ Bu ...
第14章:随堂复习与企业真题(数据结构与集合源码)
第14章:随堂复习与企业真题(数据结构与集合源码)
一、随堂复习1. 数据结构
数据结构的研究对象:
① 数据间的逻辑关系(集合关系、一对一、一对多、多对多)
② 数据的存储结构(或物理结构)
角度一:顺序结构、链式结构、索引结构、哈希结构
角度二:线性表(一维数组、链表、栈、队列)、树(二叉树、B+树)、图(多对多)、哈希表(HashMap、HashSet)
③ 相关运算
树(了解)
相关数据结构的核心Node的设计(单向链表、双向链表、二叉树、栈、队列)(理解)
2. List接口下的实现类的源码剖析【面试题】ArrayList、Vector、LinkedList的三者的对比?
层次1:
12345|-----子接口:List:存储有序的、可重复的数据 ("动态"数组) |---- ArrayList:List的主要实现类;线程不安全的、效率高;底层使用Object[]数组存储 在添加数据、查找数据时,效率较高;在插入、删除数据时,效率较低 |---- LinkedList: ...