![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 68
lucien_ma
有脑子我不用,我就傻着,哎,就是玩儿
展开
-
带你手写一个 Spring IoC 容器,原理秒懂
Spring IoC 底层实现核心技术点: XML 解析 + 反射具体的思路:1、根据需求编写 xml 文件,配置需要创建的 bean2、编写程序读取 xml 文件,获取 bean 相关信息,类、属性、id。3、根据第 2 步获取的信息,结合反射机制动态创建对象,同时完成属性的赋值。4、将创建好的 bean 存入 Map 集合,设置 key - value 映射,key 就是 bean 中 id 值, value 就是 bean 对象。5、提供方法从 Map 中通过 id 获取对应的 valu原创 2021-09-05 13:01:42 · 224 阅读 · 0 评论 -
正则表达式一文通
正则表达式简介使用正则表达式的好处有哪些?一个正则表达式就是一个描述规则的字符串,所以,只需要编写正确的规则,我们就可以让正则表达式引擎去判断目标字符串是否符合规则。正则表达式是一套标准,它可以用于任何语言。Java 标准库的 java.util.regex包内置了正则表达式引擎,在 Java 程序中使用正则表达式非常简单。举个例子:要判断用户输入的年份是否是20##年,我们先写出规则如下:一共有 4 个字符,分别是:2,0,0~9任意数字,0~9任意数字。对应的正则表达式就是:20\d\d原创 2021-09-01 22:31:55 · 498 阅读 · 0 评论 -
log4j 的使用
log4j 的使用1.导入依赖<!-- log4j --><dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version></dependency>2.配置文件命名为 log4j.properties 放在 resources 目录下面3.原创 2021-08-10 11:32:11 · 115 阅读 · 0 评论 -
Java里面的十万个为什么
Java里面的十万个为什么文章目录Java里面的十万个为什么1.不是说 JVM 是运行 Java 程序的虚拟机吗?那 JRE 和 JVM 的关系是怎么样的呢?2.配置环境变量的时候,为什么选择用户变量?用户变量与系统变量有什么区别?3.当编译 C 程序时,不仅需要指定存放目标文件的位置,还需要指定目标文件的文件名,这里使用 javac 编译 Java 程序时怎么不需要指定目标文件的文件名呢?4.我想学习 Java 编程,到底学习 Eclipse 好,还是学习 IntelliJ IDEA 好呢?5.API原创 2021-08-08 19:36:36 · 179 阅读 · 0 评论 -
Maven快速入门
Maven快速入门1.1Maven项目架构管理工具我们目前用来就是方便导入 jar 包的!Maven 的核心思想:约定大于配置有约束,不要去违反Maven会规范好你该如何去编写我们的 Java 代码,必须要按照这个规范来;1.2Maven的下载与安装官网下载地址:http://maven.apache.org/download.cgi解压即可;需要关注一下conf目录,一些配置文件1.3配置环境变量M2_HOME maven目录下的 bin 目录MAVEN_HOME原创 2021-08-03 16:52:50 · 69 阅读 · 0 评论 -
注解和反射
注解和反射1.注解1.1什么是注解?注解和注释的差别在于注解可以被其他程序读取1.2内置注解@Override 定义在 java.lang.Override 中,表示一个方法声明打算重写超类中的另一个方法声明@Deprecated 定义在 java.lang.Deprecated 中,此注解可以用于修辞方法,属性,类,表示不鼓励程序员使用这样的元素,通常是因为它很危险或者存在更好的选择。@SuppressWarnings 用来抑制编译时的警告信息。1.3元注解什么是元注解?原创 2021-07-30 00:49:12 · 98 阅读 · 0 评论 -
加了监听器之后Artifact ssm:war: Error during artifact deployment. See server log for details.项目启动不起来
加了监听器之后Artifact ssm:war: Error during artifact deployment. See server log for details之前我们创建的普通JavaWeb项目,在写监听器的时候,实现Filter接口,只需要实现里面的doFilter()方法即可public class Test implements Filter { @Override public void doFilter(ServletRequest servletReques原创 2021-06-23 23:29:09 · 899 阅读 · 2 评论 -
Java 判断括号有效性
判断括号有效性public class Demo02 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String string = scanner.nextLine(); System.out.println(isValid(string)); } public static boolean isValid(原创 2021-04-23 16:22:12 · 754 阅读 · 0 评论 -
Java 网络编程
网络编程本文章文个人“Java零基础实战”学习笔记,侵权删所谓的 Web 编程就是编写程序运行在同一网络下的两个终端上,使得他们之间可以进行数据传输。在正式学习 Java Web 编程之前,我么先来了解网络的相关基础知识。 计算机网络就是通过硬件设施、传输媒介把各个不同的物理地址上的计算机进行连接,形成一个资源共享和数据传输的网络系统。两台终端通过网络进行连接时,需要遵守一定的规则,这个规则就是网络协议(network rotocol),网络协议主要由 3 个特征组成。语法:数据信息的结果。语原创 2020-08-07 11:39:14 · 265 阅读 · 0 评论 -
Java 反射
反射本文章为个人“Java林基础实战”学习笔记,仅供参考学习,侵权删反射,它完成的是通过一个实例化对象映射到类,这样我们在程序运行期间就可以获取类的信息了。注意这里讲的通过反射获取类信息是在程序运行期间,我们可以直接看到类结构是静态的,而程序运行起来是动态的,两者是不同的两个概念。我们要做的就是在运行期间获取类的结构然后完成某些特定功能。一句话来简单理解反射:常规情况下是通过类来创建实例化对象的,反射就是将这一过程进行了反转,通过实例化对象来获取对应的类信息。Class 类Class 类是反射的基础原创 2020-08-04 16:40:28 · 145 阅读 · 0 评论 -
Java IO流
IO 流本文章为个人“Java零基础实战”学习笔记,仅供参考学习,侵权删File 类字节流字符流处理流缓冲流序列化和反序列化File 类 Java 会用对象来表示文件,Java 提供了 java.io.File 类,使用该类的构造函数可以创建文件对象以表示一个物理资源,File 的常用方法如表:方法描述public File(String pathname)根据路径创建对象public String getName()获取文件名public St原创 2020-07-31 15:08:06 · 308 阅读 · 0 评论 -
Java 实用类
实用类本文章为个人“Java零基础实战”学习笔记,仅供参考学习,侵权删枚举MathRandomStringStringBuffer日期类枚举枚举(Enum)是一种有确定取值区间的数据类型,它本质上是一种类,具有简洁、安全、方便等特点。可以这样理解,枚举的值被约束到一个特定的范围,只能取这个范围以内的值。我们为什么要用枚举呢?我们在描述对象的一些属性特征时,可选择的值是一个特定范围的,不能随便定义。比如性别只有男和女,一周只有七天,一年只有四季。出于对数据的安全性考虑,类似这种有特定取原创 2020-07-28 18:14:48 · 175 阅读 · 2 评论 -
Java 泛型
泛型本文章为个人“Java零基础实战”学习笔记,仅供参考学习,侵权删泛型的概念泛型(Generics)是指在类定义时不指定类中信息的具体数据类型,而是用一个标识符来代替,当外部实例化对象时来指定具体的数据类型。有了泛型,我们就可以在定义类或者接口时不明确指定类中的具体数据类型,在实例化时再来指定具体的数据类型。这样极大地提高了类的扩展性,一个类可以装载不同的数据类型,泛型可以指代类中的成员变量数据类型,方法的返回值数据类型以及方法的参数数据类型。为什么要使用泛型呢?来看一下下面这个例子,我们知道一个原创 2020-07-27 16:19:46 · 128 阅读 · 0 评论 -
Collections 工具类
Collections 工具类集合除了可以存储数据,也提供了很多方法读数据进行操作 ,但是这些方法都有其局限性,实际操作起来不是很方便。JDK 为我们提供了 一个工具类 Collections ,专门用来操作集合,例如添加元素、对元素进行排序、替换元素。Collections 和 Arrays 很类似,Arrays 是针对数组的工具类,Collections 是针对集合的工具类,Collections 的定义如表:方法描述public static <T extends Com原创 2020-07-27 10:56:24 · 201 阅读 · 0 评论 -
Java Map 接口
Map 接口本文章为个人“Java零基础实战”学习笔记,经供参考学习,侵权删Map 接口的定义Map 接口是与 Collection 完全独立的另外一个体系,它们之间还有一个区别就是 Set、List、Collection 只能操作单个元素,而 Map 可以操作一对元素,因为 Map 中的元素都是以 key-value 的键值映射形式存储的。Map 接口定义时使用了泛型,并且定义了两个泛型 K 和 V,K 表示 key,规定了键元素的数据类型,V 表示 value,规定了值元素的数据类型,Map 接口原创 2020-07-26 17:08:54 · 352 阅读 · 0 评论 -
Java Set 接口
Set 接口本文章为个人“Java零基础实战”学习笔记 ,经供参考学习,侵权删Set 接口的定义Set 是 Collection 的子接口 ,Set 接口以散列的形式存储数据,所以元素没有顺序。可以存储一组无序且唯一的对象。在实际开发中也不能直接实例化 Set,需要对其实现类进行实例化再完成业务操作。Set 的常用实现类主要有:HashSetLinkedHashSetTreeSetSet 接口的实现类HashSetHashSet 是开发中经常使用到的实现类,存储一组无序且唯一的对象。原创 2020-07-26 12:07:21 · 148 阅读 · 0 评论 -
Java List 接口
List 接口本文章为个人“Java零基础实战”学习笔记,经供参考学习,侵权删List 接口的定义List 是 Collection 的常用子接口,可以存储一组有序,不唯一的对象,List 接口在继承 Collection 接口的基础上进行了扩展,常用的扩展方法如表:方法描述E get(int index)通过下标获取集合中指定位置的元素E set(int index,E element)替换集合中指定位置的元素void add(int index,E eleme原创 2020-07-25 16:12:41 · 191 阅读 · 0 评论 -
Java集合框架概述
集合框架本文章为个人“Java零基础实战”学习笔记,经供参考学习,侵权删集合的概念集合可以简单的理解为一个长度可以改变,可以保存任意数据类型的动态数组。集合本身也是数据结构的基本概念之一,我们这里说的集合是 Java 语言对这种数据结构的具体实现。在 Java 中,集合不是由一个类来完成的,而是由一组接口和类构成了一个框架体系。大致可分为 3 层,最上层是一组接口,继而是接口的实现类,接下来是对集合进行各种操作的工具类,集合框架中常用接口的具体描述如表:接口描述Collecti原创 2020-07-25 15:06:35 · 88 阅读 · 0 评论 -
Java异常
异常本文章为个人“Java零基础实战”学习笔记,仅供参考学习,侵权删什么是异常?Java 中的错误大致可以分为两类:一类是编译时错误,一般指语法错误;另一类是运行时错误。编译时的错误在程序编译时就会暴露出来,会导致程序编译失败。IDE 集成开发环境都会对这种错误进行提示,我们在编写代码时就能看到错误。运行时错误在我们编写代码的过程中以及程序编译期间难以发现,甚至可以正常编译通过,但一旦运行就会报错,这类错误一般不容易发现。Java 中有一组类专门来描述各种不同的运行时错误,叫做异常类,Java原创 2020-07-25 11:03:19 · 253 阅读 · 0 评论 -
Java接口
接口本文章为个人“Java零基础实战”学习笔记,仅供参考学习,侵权删什么是接口?接口是 Java 程序开发中很重要的一种思想,准确地讲不仅仅是 Java 编程,对于其他高级编程语言来说接口也是非常重要,在实际开发中使用非常广泛。所以产生了一种编程方式:面向接口编程。面向接口编程不是一种思想,更准确的讲它应该是一种编程方式。面向接口编程就是讲程序的业务逻辑进行分离,以接口的形式去对接不同的业务模块。接口只串联不实现,真正的业务逻辑实现交给接口的实现类来完成。当用户需求变更的时候,只需要切换不同的原创 2020-07-23 16:23:02 · 96 阅读 · 0 评论 -
包装类
包装类本文章为个人“Java零基础实战”学习笔记,仅供参考学习,侵权删什么是包装类?Java 中的数据类型从本质上可以分为两类:8 种基本数据类型和引用类型。8 中基本数据类型有:byte、short、int、long、float、double、char、boolean。那什么是引用类型呢?只要是通过构造函数 new 出来的对象就是引用类型。基本数据类型不是对象,引用数据类型的数据才能称之为对象。我们知道 Java 是面向对象的编程语言,某些场景需要用对象来描述基本类型的数据,如何来实现呢?就是通原创 2020-07-23 12:28:00 · 99 阅读 · 0 评论 -
Object类
Object类本文章为个人“Java零基础实战”学习笔记,仅供参考学习,侵权删Object 就是 Java 提供的一个类,位于 java.lang 包中,该类是所有类的直接父类或间接父类。无论是 Java 提供的类,还是开发者自己定义的类,都是 Object 的直接子类或间接子类。或者说 Java 中的每一个类都是 Object 的后代,Object 是所有类的祖先。一个类在定义时如果不通过 extends 指定其直接父类,系统会自动为该类继承 Object 类。重写 Object 类的方法每一原创 2020-07-22 11:05:11 · 115 阅读 · 0 评论 -
Java抽象类和抽象方法
抽象方法和抽象类先看一个例子:class Member{ public void buyBook(){ }}class OrdinaryMember extends Member{ @Override public void buyBook() { System.out.println("普通会员买书打9折"); }}class SuperMember extends Member{ @Override public void buyBook() {原创 2020-07-21 15:36:53 · 130 阅读 · 0 评论 -
Java封装
封装本文章为个人“Java零基础实战”学习笔记,仅供参考学习,侵权删什么是封装?封装是指将类的属性隐藏在内部,外部不能直接访问和修改,必须通过类提供的方法来完成属性的访问和修改。封装的核心思想就是尽可能把属性都隐藏在内部,对外提供方法来访问,我们可以在这些方法中田间逻辑处理来实现过滤,以屏蔽错误的数据的赋值。封装的步骤修改属性的访问权限,使得外部不能直接访问提供外部可以直接调用的方法在方法中加入属性控制逻辑所以我们需要将类中的成员变量的访问权限设置为私有(private),既只能在类原创 2020-07-21 13:19:51 · 113 阅读 · 0 评论 -
Java多线程综合练习
Java多线程综合练习本文章为个人“Java零基础实战”学习笔记,仅供参考学习,侵权删一场球赛的球票分3个窗口售出,共15张票,请用多线程模拟3个窗口的售票情况class TicketRunnable implements Runnable{ //剩余票数 public int surpluCount = 15; //已售票数 public int outCount = 0; @Override public void run() { while(surpluCount >原创 2020-07-20 16:27:53 · 174 阅读 · 0 评论 -
Java多线程(5)--线程同步
线程同步当多个线程并行访问一个共享数据时,可能会导致数据的不准确问题。举例如下://统计线程访问量类class Account implements Runnable{ private static int n; @Override public void run(){ try{ Thread.currentThread().sleep(1); }catch(InterruptedException e){ e.printStackTrace(); } n++;原创 2020-06-08 14:09:55 · 149 阅读 · 0 评论 -
Java多线程(4)--线程调度
线程调度线程休眠线程休眠通过调用sleep()方法实现,sleep(long millis)是java.lang.Thread类中定义的方法,单位为毫秒class MyThread extends Thread{ @Override public void run(){ for(int i = 0; i < 20; i++){ if(i == 5){ try{ sleep(1000); }catch(InterruptedException e){原创 2020-06-01 18:42:26 · 142 阅读 · 0 评论 -
Java多线程(3)--线程状态
线程状态线程共有5中状态,在特定的情况下,线程可以在不同的转态之间切换创建状态:实例化了一个新的线程对象,还未启动就绪状态: 创建好的线程对象调用start()方法完成启动,进入线程池等待抢占CPU资源运行状态: 线程对象获取了CPU资源,在一定的时间内执行任务阻塞状态: 正在运行的贤臣暂停执行任务,释放所占用的CPU资源。并在解除阻塞状态只会也不能直接回到运行状态,而是重新回到就绪状态,等待获取CPU资源终止状态: 线程运行完毕或因为异常导致该线程终止运行Java多线程的知识持续原创 2020-06-01 15:35:38 · 181 阅读 · 0 评论 -
Java多线程(2)--Thread类、Runnable接口
Java中线程的使用Java中实现多线程的常用方式有两种:1.继承Thread类2.实现Runnable接口继承Thread类class MyThread extends Thread{ @Override public void run(){ for(int i = 0; i < 20; i++){ System.out.println("-----------MyThread"); } }}public class Test{ public static原创 2020-06-01 14:43:45 · 168 阅读 · 0 评论 -
什么是线程?什么是进程?
Java多线程基础进程和线程的概念应用程序是静态的概念,进程和线程是动态概念,有创建就有销毁,存在也是暂时的,不是永久性的。进程与线程的区别在于进程在运行时拥有独立的内存空间(每个进程所占有的内存都是独立的)多个线程是共享内存空间的,但是每个线程的执行时相互独立的,同时线程必须依赖于进程才能执行,单独的线程是无法执行的,由进程来控制多个线程的执行。我们通常所说的多线程是指在一个进程中,多个线程同时执行这里说的同时执行不是真正意义上的同时执行,系统会自动为每个线程分配cup资源,在某个具体时间原创 2020-06-01 13:56:20 · 220 阅读 · 0 评论