Java
文章平均质量分 66
vid。
出走半生,归来仍是少年;遍历山河,仍觉人间值得
展开
-
关于HttpServletRequest的常见操作
转换成HttpMethod枚举类。原创 2023-09-22 14:53:15 · 150 阅读 · 0 评论 -
Stream流
实体类//书名 private String name;//分类 private String category;//评分 private Integer score;//简介 private String intro;@Data @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode //用于后期的去重使用 public class Author {//姓名 private Integer age;原创 2023-02-07 15:11:15 · 496 阅读 · 0 评论 -
Java值传递
基本数据类型直接拷贝的是值,而引用数据类型拷贝的是地址原创 2022-02-18 13:57:54 · 384 阅读 · 0 评论 -
静态代理和静态代理(Jdk动态代理和Cglib动态代理)
静态代理代理对象的两个概念:1、代理对象存在的价值主要用于拦截对真实业务对象的访问。2、代理对象应该具有和目标对象(真实业务对象)相同的方法。/** * @author acoffee * @create 2021-11-16 9:49 *///接口interface Cookie{ void cooking();}//实现类class CookieImpl implements Cookie{ @Override public void cooking(原创 2021-12-10 17:47:06 · 273 阅读 · 0 评论 -
ArrayList添加一个元素的过程(中部插入以及尾部添加)
只知道在ArrayList 添加一个元素在尾部添加元素,如果容量不够就会扩容1.5倍,也没有通过源码去研究过这个过程。今天我们就来研究研究:从 中间插入,和末尾插入 这两种方式 来进行研究。末尾插入public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!! elementData[size++] = e; return true;}...原创 2021-11-24 21:19:01 · 9429 阅读 · 0 评论 -
在类中不写构造器为什么通过反射拿不到空参构造
public class relJava1 { public static void main(String[] args) throws Exception { Class<Person> person = Person.class; Constructor<Person> con = person.getConstructor(); System.out.println(con); }}class Pers原创 2021-09-26 11:11:15 · 280 阅读 · 0 评论 -
用debug看HashMap
一直都是对HashMap的底层及扩容原理都没有很好的理解,所以就决定重新对HashMap的底层原理重新来梳理梳理。HashMap这个扩容原理真的是众说纷纭,感觉就没有一个较为清楚,原来只知道的HashMap当链表的长度大于8 并且数组的长度大于64 链表才会转换成红黑树。但是一直没有去自我验证,今天我就来验证验证,此次我们使用的是JDK1.8:/** * @author acoffee * @create 2021-08-23 11:02 */public class Test { pu原创 2021-08-23 21:38:00 · 793 阅读 · 3 评论 -
关于TreeMap使用keySet遍历的问题
当我们使用TreeMap 去按添加顺序取出的时候,并且我们不希望去重,我们通过比较器排序完成需求后,然后我们这个时候我们就想用ketSet 通过遍历 去得到他的value,然后我们就发现拿不到值。public class Exer_6 { public static void main(String[] args) { TreeMap map = new TreeMap(new Comparator() { @Override public int compare(Object o1,原创 2021-08-23 20:44:26 · 526 阅读 · 0 评论 -
Map实现类Properties
Properties属于Map接口中Hashtable实现类存取数据时,建议使用setProperty(String key,String value)方法和getProperty(String key)方法。datasource.properties文件:driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF8username=rootp原创 2021-04-21 20:33:17 · 182 阅读 · 0 评论 -
idea中maven创建Module时运行到[INFO] Generating project in Batch mode时卡住
maven项目创建Module时运行到[INFO] Generating project in Batch mode时卡住。原因: 一般就是因为网络原因,因为创建Module时需要远程去获取archetype-catalog.xml文件解决办法:①我们可以去下载这个archetype-catalog.xml文件②然后将文件放在本地的.m2\repository\org\apache\maven\archetype\archetype-catalog\3.2.0这个路径下(如果是自己配置过maven原创 2021-04-15 21:42:27 · 1350 阅读 · 1 评论 -
MVC 概念
1、MVC 概念MVC 全称:Model 模型、 View 视图、 Controller 控制器。MVC 最早出现在 JavaEE 三层中的 Web 层,它可以有效的指导 Web 层的代码如何有效分离,单独工作。View 视图:只负责数据和界面的显示,不接受任何与显示数据无关的代码,便于程序员和美工的分工合作——JSP/HTML。Controller 控制器:只负责接收请求,调用业务层的代码处理请求,然后派发页面,是一个“调度者”的角色——Servlet。转到某个页面。或者是重定向到某个页面。Mo原创 2021-01-09 19:32:40 · 425 阅读 · 0 评论 -
IDEA 中 Debug 调试的使用
IDEA 中 Debug 调试的使用.1、Debug 调试代码,首先需要两个元素:断点 + Debug 启动服务器①、断点,只需要在代码需要停的行的左边上单击,就可以添加和取消②、Debug 启动 Tomcat 运行代码:2、测试工具栏:3、变量窗口变量窗口:它可以查看当前方法范围内所有有效的变量。4、方法调用栈窗口①、方法调用栈可以查看当前线程有哪些方法调用信息②、下面的调用上一行的方法其他常用调试相关按钮:...原创 2020-12-20 20:40:22 · 103 阅读 · 0 评论 -
JDBC技术2(事务设置隔离级别、数据库连接池、DBUtils实现CRUD操作)
数据库事务JDBC事务处理在这里插入代码片原创 2020-11-30 17:05:32 · 486 阅读 · 0 评论 -
JDBC技术1(数据库的连接、增删改查、批量插入)
一、Web技术总览浏览器端:THML (超文本标记语言(Hypertext Markup Language)):负责整个浏览器的骨架(女生)CSS:页面美化(女生化妆)JS:负责整个页面行为,让页面动起来、比如注册的时候设置密码、确认密码(让女生动起来)jQuery:基于JS,将JS的操作封装到jQuery中,更加便利,除此之外还有VUE、React这些技术Ajax(创建交互式 Web 应用程序而无需牺牲浏览器兼容性的流行方法(Asynchronous JavaScript and XML))原创 2020-11-26 19:19:42 · 871 阅读 · 0 评论 -
Java-day30(Java9&Java10& Java11新特性)
Java 9 的新特性Java 9 中有哪些不得不说的新特性?二、JDK 和 JRE 目录结构的改变JDK 8 的目录结构JDK 9 的目录结构三、模块化系统: Jigsaw → Modularity四、Java的REPL工具: jShell命令调出jShell获取帮助基本使用五、语法改进:接口的私有方法Java 8中规定接口中的方法除了抽象方法之外,还可以定义静态方法和默认的方法。一定程度上,扩展了接口的功能,此时的接口更像是一个抽象类。在Java 9原创 2020-10-31 11:55:02 · 380 阅读 · 0 评论 -
Java-day29(动态代理和java8新特性)
静态代理:/** * 静态代理: * 代理类和被代理类在编译期间就被确定下来了 * @author acoffee * @create 2020-10-24 12:14 */interface ClothFactory{ void produceCloth();}//代理类class ProxyClothFactory implements ClothFactory{ private ClothFactory factory;//用被代理类对象进行实例化原创 2020-10-27 20:43:27 · 295 阅读 · 0 评论 -
Java-day28(反射)
Java反射机制概述理解Class类并 获取Class的实例Person类(提供一些构造器及 私有方法):package com.acoffee.java;/** * @author acoffee * @create 2020 上午 10:38 */public class Person { private String name; public int age; @Override public String toString() {原创 2020-10-24 11:07:09 · 196 阅读 · 0 评论 -
Java-day27(IO流与网络编程)
对象流( ObjectInputStream和OjbectOutputSteam )Person类:package com.acoffee.java1;import java.io.Serializable;/** * Person需要满足下列的要求才能满足序列化 * 1.需要实现接口:Serializable * 2.当前类提供一个全局变量:serialVersionUID * 3.除了当前Person类需要实现Serializable接口之外, * 还必须保证其内部所有原创 2020-10-22 16:13:38 · 326 阅读 · 0 评论 -
Java-day26(IO流)
File类的使用File 类的使用:常用构造器/** * 1.如何创建File类的实例 * File(String filePath) * File(String filePath,String filePath) * File(File parentFile,String filePath) * * 2.相对路径:相较于某个路径下,指明的路径 * 绝对路径:包含盘符再累的文件或文件目录的路径 * * 3.路径分隔符 * windows:\\ * uni原创 2020-10-20 12:35:00 · 186 阅读 · 0 评论 -
Java-day25(泛型与File)
泛型的概念在集合中使用泛型/** * 泛型的使用 * 1.JDK5.0新增的特性 * * 2.在集合中使用泛型 * 总结:① 集合接口或集合类在JDK5.0时都修改为带泛型的结构 * ② 在实例化集合类时,可以指明具体的泛型类型 * ③ 指明完以后,在集合类或接口中凡是定义类或接口时, * 内部结构(比如:方法、构造器、属性等)使用到类的 * 泛型位置,都指定为实例化的泛型类型 * 比如:add(E e) → 实例化原创 2020-10-18 15:54:48 · 362 阅读 · 4 评论 -
Java-day24(java集合:Map接口)
Map接口一、Map实现类的接口|- Map:双列数据,储存key-value对的数据 → 类似高中的函数:y = f(x)|-- HashMap: 作为Map 的主要实现类;线程不安全,效率高;储存null 的key 和 value。|---- LinkedHashMap: 保证在遍历Map元素时,可以按照添加的顺序实现遍历。原因: 在原有的HashMap底层结构基础上,添加了一对指针,指向前一个和后一个元素。对于频繁的遍历操作,此类执行效率高于HashMap。HashMap 的底层原创 2020-10-16 16:38:00 · 230 阅读 · 1 评论 -
Java-day23(Java集合:Collection接口)
Java集合框架概述1.集合、数组都是对多个数据进行存储操作的结构,检查Java容器。说明:主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg.avi,数据库中)2.1 数组在储存多个数据方面的特点:一旦初始化以后,其长度就确定了数组一旦定义好,其元素的类型也就确定了。我们就只能操作指定类型的数据了,比如:String[ ] arr, int[ ] arr等2.2 数组在存储多个数据方面的缺点:一旦初始化以后,其长度就不可修改。数组中提供的方法非常有限,对于添加、删除原创 2020-10-15 13:20:27 · 373 阅读 · 0 评论 -
Java-day22(枚举类与注解)
自定义枚举类一、枚举类的使用1.枚举类的理解:类的对象只有有限个,确定的。我们称之为枚举类2.当需要定义一个常量时,强烈建议使用枚举类3.如果枚举类中只有一个对象,则可作为单例模式的实现方式二、如何定义枚举类1.JDK5.0之前,自定义枚举类2.JDK5.0之后,可以使用enum关键字定义枚举类三、Enum类中的常用方法values()方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的 枚举值。valueOf(String str):可以把一个字符串转为对应的枚举类对象原创 2020-10-11 20:18:08 · 360 阅读 · 0 评论 -
IDEA中导入Eclipse项目的步骤
IDEA中导入Eclipse项目的步骤首先在Eclipse中找到你需要导入到IDEA中的项目,右键单击 选择 properties然后点击如图位置,回到进入储存项目的屋里物理位置。然后在IDEA中找到你需要项目导入到的那个文件夹右键点击Show in Explorer,然后将赋值的的文件粘贴到IDEA的工程下,回到IDEA我们发现此时的项目还是一个普通的文件夹(不是加粗的字体,现在还不是一个Moudle),然后我们点击工具栏中的Project Structure图标,出现下图,此时会出现工程下的Moud原创 2020-10-06 10:29:00 · 710 阅读 · 0 评论 -
Java-day21(SimpleDateFormat类、Calendar类、JDK8中新时期时间API、导入Moudles、Java比较器、其他常用类)
java.text.SimpleDateFormat类 /* SimpleDateFormat的使用:SimpleDateFormat对日期Date类的格式化和解析 1.两个操作: 1.1 格式化:日期 --->字符串 1.2 解析:格式化的逆过程,字符串 ---> 日期 2.SimpleDateFormat的实例化 */ @Test public void testSimpleDateFormat() throw原创 2020-10-03 18:20:15 · 290 阅读 · 0 评论 -
翻转字符串指定位置、得到字符串出现子字符串的次数的代码实现
将一个字符串进行反转。将字符串中指定部分进行反转。比如“abcdefg”反 转为”abfedcg”①使用toCharArray()把字符串变成char型数组,然后再反转指定的位置: //方式一:利用char[] public String reverse(String str, int stratIndex, int endIndex) { if (str != null) { char[] arr = str.toCharArray();//使S原创 2020-09-29 11:32:31 · 184 阅读 · 0 评论 -
Java-day20(常用类)
字符串相关的类String的特性String:字符串,使用一对""引起来表示。1.String声明为final的,不可被继承2.String实现了Serializable接口:表示字符串是支持序列化的。实现了Comparable接口:表示String可以比较大小3.String内部定义了final char[] value用于存储字符串数据4.String:代表不可变的字符序列。简称:不可变性。体现:①.当对字符串重新赋值时,需要重写指定内存区域赋值,不能使用原有的value进行赋值。原创 2020-09-27 21:43:32 · 162 阅读 · 0 评论 -
Java-day19(多线程、线程间的通信)
线程的生命周期线程的同步:引入问题:package com.acoffee.java;/** * 例子:创建三个窗口买票,总票数为100张 * @author acoffee * @create 2020-09-24 20:35 *//** * @author acoffee * @create 2020-09-24 21:25 */public class WindowTest1 { public static void main(String[] args)原创 2020-09-26 20:58:23 · 292 阅读 · 0 评论 -
Java-day18(多线程)
程序、进程、线程的定义每个线程都有一套虚拟机栈和程序计数器,而方法区和堆只有一个进程才有一套,所以方法区和堆是进程里面线程共享的,例如堆里面提供了一个实例变量每个线程都可以去修改。...原创 2020-09-24 21:46:04 · 240 阅读 · 0 评论 -
IDEA的配置
idea首次开启的配置创建一个新的工程,找到jdk文件目录,点击确定。选择代码存放的位置然后给项目取名字首次加载,配置文件需要等待不同区域的不同功能:创建模块在 Eclipse 中我们有 Workspace(工作空间)和 Project(工程)的概念,在 IDEA 中只有 Project(工程)和 Module(模块)的概念。这里的对应关系为:Eclipse 中 workspace 相当于 IDEA 中的 ProjectEclipse 中 Project 相当于原创 2020-09-23 21:05:22 · 109 阅读 · 0 评论 -
Java-day17(项目三)
com.acoffee.team.domain包:接口Equipment:package com.acoffee.team.domain;public interface Equipment { public abstract String getDescription();}NoteBook类:package com.acoffee.team.domain;public class NoteBook implements Equipment{ private ...原创 2020-09-23 21:07:47 · 1128 阅读 · 0 评论 -
Java-day16(常见异常及异常处理)
异常概述与异常体系结构捕获错误最理想的是在编译期间,但有的错误只有在运行时才会发生。 比如:除数为0,数组下标越界等分类:编译时异常和运行时异常常见的异常常见的运行时异常(RuntimeException):能够通过编译,并且能够生成字节码文件package com.acoffee.java;import java.util.Date;import java.util.Scanner;import org.junit.Test;public class RuntimeExcept原创 2020-09-20 11:34:01 · 201 阅读 · 0 评论 -
Java-day15(抽象类、抽象方法、接口、内部类)
抽象类与抽象方法(abstract)abstract关键字的使用abstract:抽象的abstract可以用来修饰的结构:类、方法abstract修饰类:抽象类》 此类不能实例化(不能造对象)》 抽象类中一定有构造器,便于子类对象实例化的时候调用(涉及:子类对象实例化的全过程 )》开发中,都会提供抽象类的子类,让子类对象实例化,完成相关操作abstract修饰方法:抽象方法》抽象方法只有方法的声明,没有方法体》包含抽象方法的类,一定是一个抽象类。反之,抽象类中可以没有抽象方法的》若原创 2020-09-19 15:47:07 · 322 阅读 · 0 评论 -
Java-day14(关键字static、单例设计模式、代码块、final)
关键字staticstatic关键字的使用1.static:静态的2.static可以用来修饰:属性、方法、饭吗快、内部类3.使用static修饰属性:静态属性(类变量)3.1 属性,按是否使用static修饰,又分为:静态属性 vs 非静态属性(实例变量)实例变量:我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性。当修改其中一个对象中的非静态属性时,不会导致其他对象中同样的属性值的修改。静态变量:我们如果创建了类的多个对象,多个对象共享同一个静态变量。当某一个对象修改静态变原创 2020-09-13 20:55:13 · 363 阅读 · 0 评论 -
对 多态(向上转型)、向下转型 的理解
多态(向上转型)多态即向上转型:当有子类对象赋值给一个父类引用时,便是向上转型,多态本身就是向上转型的过程。父类类型 变量名 = new 子类类型();class polymorphicTest{ public static void main(String[] args) { Person p2 = new Man(); p2.eat(); }}class Person{ public void eat(){ System.out.println("人:吃饭");原创 2020-09-13 11:07:29 · 1602 阅读 · 0 评论 -
Java-day13(instanceof 、object类的使用、Wrapper、equals、JUnit、toString )
instanceof例一:person类:package com.acoffee.exer3;public class Person { String name; int age; public void eat() { System.out.println("人:吃饭"); } public void walk() { System.out.println("人:走路"); }}Man类:package com.acoffee.exer3;public原创 2020-09-12 17:44:37 · 343 阅读 · 0 评论 -
Java-day12(面向对象中2 Debug 调试 方法的重写 多态性)
继承性练习一Circle类:package com.acoffee.exer;public class Circle { private double radius;//半径 public Circle() { this.radius = 1.0; } public void setRadius(double radius) { this.radius = radius; } public double getRadius() { return radius;原创 2020-09-08 14:10:48 · 279 阅读 · 0 评论 -
Java-day11(面对对象中 客户信息管理软件 继承性)
项目二原创 2020-09-06 19:23:11 · 315 阅读 · 0 评论 -
Java - day10(面对对象上3 封装和隐藏 构造器 this的使用等)
封装与隐藏一、问题的引入:当我们创建建一个类的对象以后,我们可以通过“对象 . 属性”进行赋值。这里,赋值操作要收到属性的数据类型和存储范围的制约。除此之外,没有其他的制约条件。但是,在实际问题中,我们往往需要给属性赋值加入额外的限制条件,那么这个限制条件就不能在属性声明的时候体现,我们只能通过方法进行限制条件的添加。比如(setLegs())同时,我们需要避免用户在使用“对象,属性”的方式对属性进行赋值。则则需要将属性声明为私有的(private).→此时正对属性就体现了封装性.二、封装性的体现原创 2020-09-04 17:41:01 · 247 阅读 · 0 评论 -
Java-day09(面向对象上2 匿名对象 方法的重载 值传递 可变个数形参 递归方法 )
一、理解“万事万物皆对象”1.在Java语言范畴中.我们都将功能、结构等封装到类中,通过类的实例化,来调用具体的功能结构。>Scanner,String等>文件:File>网络资源:URL2.涉及到Java语言与前端HTML、后端的数据库交互时 ,前后端的结构在java层面交互时,都体现为类、对象.二、内存解析的说明1.引用类型的变量,只肯呢个存储两类值,地址值或null(含变量类型).三、匿名对象1.理解:我们创建的对象,没有显式的赋给一个变量名,即匿名对象.2.特原创 2020-09-02 09:41:06 · 218 阅读 · 0 评论