
Java
文章平均质量分 62
Java
Cym02
才疏学浅 欢迎大家一起沟通,讨论
展开
-
Spring装配Bean的三种方式(XML、JavaConfig、Autowired)
Spring会拦截所有对@Bean注解的方法的调用,确保直接返回这个方法创建的bean,而不是让其执行实际调用。常用于构造器、setter方法,当Spring创建它们所在对象的bean时,会传入一个相应参数类型的bean,即自动满足所创建bean 的(对另一个bean的)依赖。——告诉Spring这个方法返回一个对象,该对象要注册为Spring应用上下文中的bean,bean的默认ID和这个方法名一致,也可以用name属性自定义啦。自动装配机制会考虑到容器中所有的bean,不管它是在。原创 2022-11-22 11:39:35 · 1353 阅读 · 0 评论 -
File类对文件的目录、基本操作、递归、遍历(超详细整理~)
【代码】Java.io.File类对文件的目录、基本操作、递归、遍历(超详细整理~)原创 2022-11-17 16:40:02 · 371 阅读 · 0 评论 -
建造者设计模式(角色分析)
使用简单的对象一步一步构建成一个复杂的对象。概念:定义:讲一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。主要作用:在用户不知道 对象的建造过程和细节 的情况下就可以直接创建复杂的对象如何使用:用户只需要给出指定复杂对象的类型和内容,建造者模式负责按顺序创建负责对象(把内部的建造过程和细节隐藏起来)解决的问题:①方便用户创建负责的对象(不需要知道实现过程)②代码复用性\封装性(将对象那个构建过程和细节进行封装和复用)注意事项:与工厂模式的区别是:建造者模式更加关注零件原创 2021-12-30 10:41:16 · 253 阅读 · 5 评论 -
Exception in thread “main“ java.lang.NullPointerException 读取本地json文件找不到,SpringBoot访问本地静态资源
Exception in thread "main" java.lang.NullPointerException at com.jzx.JsonDemo.main(JsonDemo.java:12)在application.properties配置中也进行了修改spring.resources.static-locations=classpath:/static/最后发现json文件在target中未找到可以通过重新编译,或者先直接上传到target中之后重新运行就可以获取到了..原创 2021-12-01 14:27:25 · 505 阅读 · 0 评论 -
com.alibaba.fastjson.JSONException: can not cast to JSONObject 使用fastjson解析json时报错
Exception in thread "main" com.alibaba.fastjson.JSONException: can not cast to JSONObject. at com.alibaba.fastjson.JSON.parseObject(JSON.java:231) at com.jzx.JsonDemo.main(JsonDemo.java:15)Caused by: java.lang.ClassCastException: com.alibaba.fastjson.JS原创 2021-12-01 14:17:39 · 28952 阅读 · 3 评论 -
IDEA lombok插件的安装(快速安装)和常用注解介绍
首先添加maven依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.8</version> <scope>provided</scope></dependency>开始安装插件1、Ctrl+Alt+S打开设置选项(或按路径原创 2021-11-30 11:18:46 · 1359 阅读 · 0 评论 -
String、StringBuffer和StringBuilder类区别分析
Java提供了String、StringBuffer和StringBuilder类来封装字符串,并提供了一系列操作字符串对象的方法。它们的相同点是都用来封装字符串;都实现了CharSequence接口。它们之间的区别如下:一、可变与不可变String类是一个不可变类,即创建String对象后,该对象中的字符串是不可改变的,直到这个对象被销毁。StringBuffer与StringBuilder都继承自AbstractStringBuilder类,在AbstractStringBuilder中也是使用字原创 2021-11-29 19:48:17 · 124 阅读 · 0 评论 -
实现单例模式的几种方式
单例模式的几种实现方式单例模式的实现有多种方式,如下所示:1、懒汉式,线程不安全是否 Lazy 初始化:是是否多线程安全:否实现难度:易描述:这种方式是最基本的实现方式,这种实现最大的问题就是不支持多线程。因为没有加锁 synchronized,所以严格意义上它并不算单例模式。这种方式 lazy loading 很明显,不要求线程安全,在多线程不能正常工作。实例public class Singleton { private static Singleton instance;原创 2021-11-29 17:22:31 · 181 阅读 · 0 评论 -
Java的三大特性(基本特征)
面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。在Java中类中成员的属性有:public, protected, (default), private,这四个属性的访问权限依次降低。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原原创 2021-11-29 16:40:03 · 9957 阅读 · 0 评论 -
Java创建线程方式的对比
1、采用实现Runnable、Callable接口的方式创建多线程时,优势是:线程类只是实现了Runnable接口或Callable接口,还可以继承其他类。在这种方式下,多个线程可以共享同一个target对象,所以非常适合多个相同线程来处理同一份资源的情况,从而可以将CPU、代码和数据分开,形成清晰的模型,较好地体现了面向对象的思想。劣势是:编程稍微复杂,如果要访问当前线程,则必须使用Thread.currentThread()方法。2、使用继承Thread类的方式创建多线程时,优势是:编写原创 2021-11-25 15:12:12 · 299 阅读 · 0 评论 -
Java中的四种权限修饰符
public——对所有类可见,任何人都可以使用;private——仅对本类可见,除类型创建者和类型的内部方法外,其他人不得使用;protected——对本包和所有子类可见(与private相当,差别是继承的类可以访问protected成员,而不能访问private成员)(继承的类即子类)。默认访问权限 default——对本包可见,可以访问同一个包中的其他类的成员,而不能访问其他包的成员。权限:指代作用范围public < protected < default < privat原创 2021-11-22 15:11:35 · 596 阅读 · 0 评论 -
JAVA 的成员变量和局部变量 以及初始化和内存运行机制
java的变量包括成员变量和局部变量1**、成员变量和局部变量的简单概念**成员变量:实例变量(不以static修饰)类变量(以static修饰)局部变量:形参(方法签名中的变量)方法局部变量(在方法内定义)代码块局部变量(在代码块中定义)成员变量类变量从该类的准备阶段起开始存在,直到系统完全销毁这个类,类变量的作用域与这个类的生存范围相同;而实例变量则从该类的实例被创建起开始存在,直到系统完全销毁这个实例,实例变量的作用域与对应实例的生存范围相同。正是基于这个原因,可以把类原创 2021-11-19 16:47:05 · 547 阅读 · 0 评论 -
JAVA 的内存管理和垃圾回收
栈在Java中,JVM中的栈记录了线程的方法调用。每个线程拥有一个栈。在某个线程的运行过程中,如果有新的方法调用,那么该线程对应的栈就会增加一个存储单元,即帧(frame)。在frame中,保存有该方法调用的参数、局部变量和返回地址。调用栈Java的参数和局部变量只能是基本类型的变量(比如int),或者对象的引用(reference)。因此,在栈中,只保存有基本类型的变量和对象引用。引用所指向的对象保存在堆中。(引用可能为Null值,即不指向任何对象)引用与对象当被调用方法运行结束时,该方法转载 2021-11-18 16:06:04 · 298 阅读 · 0 评论 -
JAVA运行流程,原理 (一)
java运行原理源文件(.java源代码)通过编译器编译成字节码文件class。通过JVM中的解释器将字节码文件生成对应的可执行文件,运行。将编译后的程序加载到方法区,存储类信息。运行时,JVM创建线程来执行代码,在虚拟机栈和程序计数器分配独占的空间。根据方法区里的指令码,在虚拟机栈对线程进行操作,程序计数器保存线程代码执行到哪个位置。Class字节码文件:是一个二进制文件,包含了JAVA程序执行的字节码,包含的信息有版本、访问标志、常量池、当前类、超级类、接口、字段、方法、属原创 2021-11-18 15:45:07 · 139 阅读 · 0 评论 -
JAVA JVM 运行机制和基本原理
JVM的基础概念JVM的中文名称叫Java虚拟机,它是由软件技术模拟出计算机运行的一个虚拟的计算机。JVM也充当着一个翻译官的角色,我们编写出的Java程序,是不能够被操作系统所直接识别的,这时候JVM的作用就体现出来了,它负责把我们的程序翻译给系统“听”,告诉它我们的程序需要做什么操作。我们都知道Java的程序需要经过编译后,产生.Class文件,JVM才能识别并运行它,JVM针对每个操作系统开发其对应的解释器,所以只要其操作系统有对应版本的JVM,那么这份Java编译后的代码就能够运行起来,这就是原创 2022-04-12 17:56:03 · 716 阅读 · 10 评论 -
Java 中的一些常用类
位于java.long包下是所有类的超类object o = 任意类型的对象Object类中所有受保护,公开的方法,是所有类所具备的常用方法:getClass() : 返回引用中指向的对象的实际类型//判断 a 和 a1指向的实际对象 是否是同一类型System.out.println(a.getClass() == a1.getClass()); //一致 - true; 不一致- falseint hashCode(): 返回值对象的哈希码值(对原创 2020-07-02 12:34:04 · 167 阅读 · 0 评论 -
Java 中内部类简单概念
概念:在一个类内部定义的类1.内部类会生成独立的.class文件。文件名Outer$Inner.class2.内部类可以访问外部类的私有属性,从而不破坏外部类的封装性成员内部类(类比成员变量)1.定义位置:类以内,方法以外2.如何创建对象Outer o = new Outer(); //创建外部类对象Outer.Inner inner = o.new Inner(); //创建成员内部类对象3.注意:a. 访问外部类的属性:外部类类名.this.外部类属性名 例:Outer.thi原创 2020-07-01 23:37:29 · 152 阅读 · 0 评论 -
Java 中接口的简单概念
概念:一种标准,一种规范;是使用者和实现者之间的一种约定。接口的语法:1.interface 接口名 { }2.接口不能创建对象,但是可以声明引用。3.接口会生成.class文件4.接口不能定义构造方法5.接口中的属性默认为公开静态常量(public static final)6.接口中的方法默认为公开抽象方法(public abstract)注意:接口不是类实现类的定义//实现类:MyClass//IA为接口//MyClass实现类IA接口class MyClass implem原创 2020-07-01 22:30:07 · 248 阅读 · 0 评论 -
Java 中三个修饰符及相关概念
abstract(抽象的)1.修饰类 --> 抽象类抽象类 不能创建对象,可以声明引用抽象类可以定义属性和方法以及构造方法。构造方法是在创建子类对象时使用(创建子类对象 先创建父类对象)2.修饰方法 --> 抽象方法语法:public abstract 返回值类型 方法名(参数列表);注意: public abstract 没有先后顺序抽象方法只有声明 没有实现,连 { } 都没有抽象方法只能定义在抽象类中子类必须实现(覆盖)抽象父类中的抽象方法;否则,子类原创 2020-07-01 12:25:53 · 205 阅读 · 0 评论 -
Java 中数组简单介绍
概念:一组连续的存储空间,存储多个相同数据类型的数据语法1.声明数组 数据类型[] 数组名; int[] a; int []a; int a[];2.分配空间 数组名 = new 数据类型[数组长度]; a = new int[4];1)多种声明方式声明的同时并且分配空间 int [] a = new int[4];显示初始化int [] a = new int [] {1,2,3,4,5};int [] a = {1,2,3,4,5};2)数组元素具有默认值数组类型原创 2020-06-30 20:35:49 · 162 阅读 · 0 评论 -
Java 中参数简单介绍
存在的问题:1.可复用性差2.可读性差3.可维护性差4.代码重复率高概念:一段功能代码,可以通过名字反复使用函数的使用流程1.函数的声明 约定函数的功能(形参,返回值类型)public static 返回值类型 函数名(形参列表)参数:调用者向被调用者内部传递的数据形式参数(形参):相当于函数内部的局部变量实际参数(实参):为形参赋值注意:实参和形参 个数和顺序必须保持一致返回值:被调用者返回给调用者的数据void 没有返回值八种基本数据类型引用数据类型注意:返回值的数原创 2020-06-30 19:50:33 · 1994 阅读 · 0 评论 -
线程 总结(二)
线程池//线程池 -- 》 Executors.newFixedThreadPoo() 获取线程池ExecutorService es = Executors.newFixedThreadPool(2);Runnable r1 = new Runnable() { public void run() { for (int i = 0; i < 100; i++) { System.out.println("###"+i); }原创 2020-05-25 18:36:48 · 179 阅读 · 0 评论 -
线程 总结(一)
进程:操作系统上并发运行的一个程序。并发:由cpu分配时间片执行 微观串行,宏观并行线程:进程中并发的一个任务线程的组成1.cpu2.数据 堆空间共享 栈空间独立3.代码创建线程的方式1.实现Runnable接口,创建Runnable类型的对象。将其提交给Thread对象class Thread implements Runnable{ public void run(){...原创 2020-05-25 17:03:46 · 177 阅读 · 0 评论