JavaSE
文章平均质量分 54
JavaSE
六月Bing
这个作者很懒,什么都没留下…
展开
-
session的单例模式
/** * 单例模式: * 1.私有化构造方法(为了保证使用者不通过 new 来构造对象) * 2.提供一个私有的静态属性(要构建的对象类型) * 3.提供一个公开的静态方法,返回需要的单例对象 * 有可能需要做简单的逻辑判断 * 单例模式:懒汉式和饿汉式 两种设计方式 * * 懒汉式:程序向对方要数据的时候,才尝试去创建该对象 * 以时间换取空间原创 2021-08-30 11:43:01 · 373 阅读 · 0 评论 -
Java - 网络编程----TCP
ServerSocket服务器端ServerSocket ss = new ServerSocket()创建服务器 Socket端口socket.bind(new InetSocketAddress(“localhost”, 8888), 50)设置 服务器 IP 和端口, 配置监听 客户端数量Socket socket = ss.accpet()阻塞式等待客户端的连接给每一个客户端开启一个线程socket.getInputStream()获取输入流、接收客户端数据1原创 2021-09-06 16:26:14 · 124 阅读 · 0 评论 -
Java核心类----Math(数学)类、random(随机数)类
Math类Math包含用于执行基本的数字运算等基本指数、对数、平方根法、三角函数。常用方法random()生成一个 [0, 1) 之间的随机数这里是引用max(a, b) / min(a, b)比较两个数的大小pow(a, b)获取 a 的 b 次方sqrt(a)求a的平方根ceil(a) / floor(a)向上/下 取整,返回doubleround(a)四舍五入取整abs(a)获取绝对值...原创 2021-09-02 14:29:51 · 99 阅读 · 0 评论 -
Java核心类----日期类
枚举类枚举类用关键字 enum 来进行定义,本质上用户定义的枚举类是 Enum 类的字类 枚举类拥有 name ,ordinal 属性 name 用来获取枚举值对应的字符串表示形式 ordinal 用来获取定义枚举值的索引顺序,默认从零开始,不推荐使用(原因是索引值会随着用户定义值的位置而发生改变)...原创 2021-09-03 16:38:01 · 59 阅读 · 0 评论 -
Java异常-----异常的处理
异常的处理try - catch处理异常e.printStackTrace();异常的打印TryCatch与Throw结合使用public static void test() throws Exception { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); try { //可能产生异常 Date parse = df.parse("19原创 2021-09-05 09:44:26 · 109 阅读 · 0 评论 -
Java反射----类和对象
反射 /** * 类的对象 类对象 * 类加载:JVM第一次读取一个类的时候,将字节码class 文件读取到内存中的过程 * 类对象:类加载的产物,一个类的类对象永远相同,类对象的表示:用CLASS表示 * * 类对象的获取方式有三种: * 1.类.class * 2.对象.getClass * 3.class.forName("类全名") 类全名:包名 + 类名 */.原创 2021-08-30 18:16:45 · 75 阅读 · 0 评论 -
Java集合框架----泛型
泛型泛型不允许直接 new泛型特点:泛型就是编写模板代码来适应任意类型使用时不必对类型进行强制转换通过编译器对类型进行检查使用泛型的类型支持向上转型泛型实现方式是擦拭法泛型通常适用于集合中泛型主要应用于集合中泛型的定义class Person<T, E>{}支持类定义多个泛型PS: 静态方法定义的泛型和类上的泛型没有任何关系泛型的实例public class Person<T>{ public T field ; public原创 2021-09-06 12:56:25 · 131 阅读 · 0 评论 -
Java网络编程----TCP和UDP
TCP和UDP的完整区别TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。 TCP的缺点: 慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。 而且,因为TCP有确认机制、原创 2021-09-06 19:28:47 · 125 阅读 · 0 评论 -
Java异常----自定义异常和Junit异常的测试
自定义异常constructor(message)用来设置异常错误信息getMessage()获取错误信息printStackTrace()将异常栈打印到控制台中printStackTrace(printWriter)printStackTrace(printStream)printStackTrace(printStreamOrWriter)将异常栈写入到 文件中Junit异常的测试语法:assert boolean : msg断言失败、抛出错误信息-ena原创 2021-09-05 09:44:00 · 174 阅读 · 0 评论 -
Java网络编程----邮件发送----简单邮件
邮件发送邮件 properties 配置mail.smtp.host(接受邮件主机名(smtp.qq.com))mail.smtp.port(接受邮件端口号(587))mail.smtp.auth(是否需要用户认证(true))mail.smtp.starttls.enable(是否启用TLS加密(true))session 会话Session.getDefaultInstance(props, Authentication)创建Session 会话session.setDebug(原创 2021-09-06 19:07:43 · 415 阅读 · 0 评论 -
Java正则表达式----Pattern和Matcher
Pattern修饰符CASE_INSENSITIVE忽略大小写MULTILINE多行模式DOTALLdotAll 模式UNICODE_CASEunicode模式compile(regex)使用正则构建 Pattern对象compile(regex, flags)flags : 设置修饰符,多个修饰符用 | 分割matcher(str)返回Matcher对象Matchermatches()返回是否匹配、适用于匹配一次的判断find()是否有找到匹配的元原创 2021-09-05 10:09:18 · 158 阅读 · 0 评论 -
Java反射----构造方法
获取构造方法 Class<User> cla = User.class; //获取 user 类的所有构造方法 Constructor<?>[] constructors = cla.getConstructors(); Constructor<?> constructor = constructors[0]; //通过构造方法创建对象 User user = (User) con原创 2021-08-30 18:45:32 · 210 阅读 · 0 评论 -
Java反射----注解Annotation
注解定义@interfacepublic @interface Report { int type() default 0; String level() default "info"; String value() default "";}注解的成员支持基本数据类型String 类型枚举/枚举数组注解/注解数组PS : 大部分注解会有一个名为value的配置参数,对此参数赋值,可以只写常量,相当于省略了value参数注解中的value成员,在使用的时原创 2021-09-02 09:15:18 · 162 阅读 · 0 评论 -
Java异常和日志----Log日志
commons-logging日志接口APILog4j日志实现API优先级(高)Fatal -> Error -> Warn -> Info -> Debug -> Trace(低)优先级 越低、输出的日志信息会越多日志输出目的地Appender日志输出目的地ConsoleAppenderFileAppenderRollingFileAppenderlog4j2.xml 配置<?xml version="1.0" encodin原创 2021-09-05 09:59:41 · 187 阅读 · 0 评论 -
Java反射----获取属性、获取方法
获取属性getField(fieldName)根据字段名获取某个public的field(包括父类)getDeclaredField(fieldName)根据字段名获取当前类的某个field(不包括父类)getFields()获取所有 public 的 field属性getDeclaredFields()获取当前类的所有field (不包含父类)Field 常见的方法getName() : 获取属性名getType() : 获取属性类型getModifiers() : 返回修饰原创 2021-09-09 08:53:34 · 1589 阅读 · 0 评论 -
Java核心类----包装类
包装类包装类----Number及封装拆箱* byte Byte * short Short * int Integer * long Long * float Float * double Double * char Character * boolean Boolean * * 数字 代表 数字的包装类原创 2021-09-03 09:36:28 · 56 阅读 · 0 评论 -
Java核心类----Comparator 接口排序规则 、枚举类
Comparatorcompare(T o1,T o2)传两个参数o1 > o2 返回正数o1 < o2 返回负数o1 = o2 返回0Comparator 接口主要用来做排序 Integer[] array = {23,34,12,5,25,56}; Arrays.sort(array,(a,b) ->{ //return 1 永远认为 a 比 b da // 认为数组中的后一个元素永远比 前一个元素大原创 2021-09-03 12:14:26 · 460 阅读 · 0 评论 -
Java核心类----日期类JDK1.8新特性
JDK1.8 新API(java.time包)ZoneId 时区ZoneId.systemDefault()获取系统默认的时区ZoneId.of(“Asia/Shanghai”)获取中国时区ZoneId.getAvailableZoneIds()获取可用的所有时区集合 //创建一个系统自带的默认时区 ZoneId zoneId = ZoneId.systemDefault();本地日期和时间LocalDateTime/LocalDate/Local原创 2021-09-04 00:11:06 · 168 阅读 · 0 评论 -
Doc命令
DOC常见的命令win+Rcmd:打开命令提示符界面control:打开控制面板notepad++:快速调出记事本services.msc:快速打开服务列表calc 打开计算器mspaint 打开画图win+E 资源管理器CTRL + SHIFT + ESC:任务管理器文件夹操作cd :切换路径cd …切换目录cd /d D:切换到D盘dir :查找目录下的内容mkdir :创建目录mkdir a\b\c :递归创建目录rd :删除目录rd 目录原创 2021-07-19 17:21:17 · 138 阅读 · 0 评论 -
Java核心类----StringBuilder
StringBuilder(字符串的构造器)StringBuilder:字符串的构造器,作用专门构建字符串的,可以构建一个长度可变的字符串字符串拼接通过 + 号进行,但是如果进行大量字符串拼接,则会导致性能特别差comparable (可比较的)底层构造方法中长度默认16如下: public static void main(String[] args) { //获取当前系统时间的 时间戳(毫秒数 距离1970-01-01 0:0:0 ) String str原创 2021-08-26 19:38:13 · 201 阅读 · 0 评论 -
Java面向对象——封装
Java面向对象1. 面向对象vs面向过程2.封装类类是自然界中描述具有相同 特征 (属性)和 行为 (方法)的事务的统称类是抽象的对象万物皆为对象对象是具体的类和对象的关系类是 对象的 模板,模板的作用就是构建对象的对象是类的具体实现,一个类,可以有无数个对象...原创 2021-07-27 17:08:41 · 214 阅读 · 0 评论 -
Java数组排序和方法
数组排序1、冒泡排序对比次数是n*(n-1)/2时间复杂度是O(n^2)2、选择排序对比次数是n*(n-1)/2时间复杂度是O(n^2)3、插入排序时间复杂度O(n)性能相对比冒泡排序和选择排序好4、JDK 可以直接调用的排序方法Arrays.sort(array);升序排列,数据量小速度快降序排列倒序排序Arrays.sort(array, Comparator.reverseOrder());降序排列只能是引用类型数据,如IntegerArr原创 2021-07-23 15:44:14 · 230 阅读 · 0 评论 -
Java面向对象——继承
Java面向对象——继承继承继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来类的情况下对这些功能进行扩展。通过继承创建的新类称为「子类」或「派生类」,被继承的类称为「基类」、「父类」或「超类」extends 继承Java : 采用单继承,使用树状结构进行类的管理Java中 Object 是所有类的 父类C++、Python:采用多继承,形成的是网状结构字类可以继承父类中定义的 公开的 或者 受保护的 属性 和 方法public class Ca原创 2021-07-29 15:30:15 · 110 阅读 · 0 评论 -
项目包的介绍
项目设计建包entity | model(实体层):类的特点,主要关心的属性,和数据库表息息相关dao (持久层):数据的 持久化,和数据库的操作(增删改查)息息相关service (业务层):主要处理业务逻辑(核心层)action | controller (控制层):是连接前后端的桥梁utils (工具包):主要是项目使用的工具类config(配置包):存放项目需要使用的配置类...原创 2021-08-26 18:20:34 · 1374 阅读 · 0 评论 -
Java中的流程控制
流程控制流程控制的分类判断循环判断if语句switch语句if语句if (boolean表达式){ //条件成立时,执行的代码}if 语句不需要以分号结尾boolean表达式常见有:1.true/false关系运算表达式逻辑运算表达式if-else语句if (boolean表达式){ // 条件成立执行的代码}else{ // 条件不成立执行的代码}do…while 循环do { //循环体}while(boolean表达式);原创 2021-07-19 17:23:06 · 54 阅读 · 0 评论 -
Java入门基础
名词解释JDK : java开发工具包JRE : java运行环境JVM : java 虚拟机Java环境变量我的电脑 -> 属性 -> 高级系统设置 -> 环境变量JAVA_HOME : JDK所在的路径,主要给 maven,tomcat等第三方软件使用PATH : 配置 java 命令所在位置,快速在命令提示符任意位置执行 命令(可以在JAVA_HOME的基础上进行配置:%JAVA_HOME%\bin)CLASSPATH: 设置 类路径,. 代表当前位置,主要原创 2021-07-19 17:21:43 · 50 阅读 · 0 评论 -
Java中的字符串String
Java中的字符串String定义方式1.用双引号" "引用起来的内容2.使用三个双引号引用起来的内容 (JDK13 新特性,定义多行字符串)3.new String() 来构架字符串String s1 = "hello world\n"; String s2 = """ hello world """; String s3 = new String(); String s4 = "原创 2021-07-19 17:22:31 · 146 阅读 · 0 评论 -
Java面向对象——接口
接口接口的作用是制定标准的接口具有可扩展性解耦合:降低程序之间的耦合度接口与接口之间采用多继承接口与类之间采用多实现实现接口,就必须实现接口中的所有抽象方法如果不想实现某些抽象方法,那么就必须将该类做成抽象类public interface Shape { //接口的创建关键字 interface(接口)特点:所有的方法都是公开抽象方法所有的属性都是公开的,静态的,常量(final),都是public static final 修饰的接口中 没有 构造方法,所以不能原创 2021-08-25 09:40:06 · 163 阅读 · 0 评论 -
Java核心类----StringJoiner
StringJoinerextends Object自身是final 类型,不允许被继承特点:善于处理 以 指定分隔符 拼接字符串joiner = new StringJoiner(sep)joiner.add(str)创建 sep 分隔符 Joiner对象new StringJoiner(sep, prefix, suffle)joiner.add(str)创建 sep 分隔符、且 设置前缀和 后缀的 Joiner对象toString()返回处理后的字符串merge原创 2021-08-27 14:51:44 · 98 阅读 · 0 评论 -
Java中的数据类型和变量以及运算符
Java中的数据类型基本数据类型引用(复合)数据类型基本数据类型Java中的基本数据类型有8中,分别代表字符、数字和布尔数字类型整数小数整数byteshortintlong数据类型占用字节数据长度byte1-127~128short2-2^15 ~2^15-1int4-2^31~ 2^31-1long8-2^63~ 2^63-1Java中的1b(字节)= 8 bit(位)计算机的二进制是由0、1组成的,二原创 2021-07-19 17:23:28 · 169 阅读 · 0 评论 -
Java中的数组
Java 中的数组(Array)数组的特点1、数组一旦定义,里面装的数据类型是一致的2、数组一旦定义,长度不可改变3、数组存储的数据,在内存中是连续的4.索引查找速度最快,时间复杂度是O(1);元素查找速度最慢,时间复杂度是O(n)如何创建数组1.定义数组的方式,[]是定义数组标识创建一个数组容器,并将这个容器赋值给 array 变量在构建的时候,需要指定数组的大小new int[5] 代表构建一个长度为5的存储int类型的数组 //方式一 int [原创 2021-07-23 15:45:04 · 180 阅读 · 0 评论 -
Java异常-----Throwable异常分类
Throwable异常分类Error(错误)----系统级错误OutOfMemoryError: 内存溢出错误NoClassDefFoundError : 无法加载某个类StackOverflowError : 栈溢出ExceptionInInitializerError : 静态初始化异常ExceptionRuntimeException : 运行时异常 ; 未检查异常-运行时异常,可以处理,也可以不处理ArithmeticException :原创 2021-08-11 17:04:12 · 133 阅读 · 0 评论 -
Java 泛型
泛型/** * 泛型的定义:在类的后面加尖括号表示要定义一个泛型 * 使用泛型定义一个属性的时候,它的类型是由创建对象的时候,才能确定它的类型 * 泛型代表的是不确定的类型,所以在定义对象的时候,无法进行赋值操作,无法构建对象 * 泛型的声明,代码块都不能进行泛型对应的属性赋值 * 构造方法,set方法可以对泛型对应的属性进行赋值 */public interface Array<T> extends Iterable<T>public void sertData(原创 2021-08-26 18:11:49 · 58 阅读 · 0 评论