java
安然望川海
学习路上的喵喵儿
展开
-
MyBatis批量插入数据SQL(Oracle)
MyBatis连接Oracle时,批量插入的sql语法原创 2022-11-02 11:30:50 · 932 阅读 · 0 评论 -
在java中加了synchronized(lock)中,调用lock.wait和直接调用wait的区别?
在java中加了synchronized(lock)中,调用lock.wait和直接调用wait的区别原创 2022-09-09 16:11:24 · 471 阅读 · 0 评论 -
java静态类与非静态类区别
java静态类与非静态类区别转载 2022-09-09 15:46:01 · 658 阅读 · 0 评论 -
Thread.yield()详解
Thread.yield()详解转载 2022-08-26 11:10:17 · 325 阅读 · 0 评论 -
双重检查锁定的单例模式分析
双重检查锁定和延迟初始化原创 2022-08-24 17:12:22 · 114 阅读 · 0 评论 -
什么是偏向锁
偏向锁基本原理原创 2022-08-17 17:04:52 · 554 阅读 · 0 评论 -
String的几种replace()方法(Java)
String转载 2022-03-18 11:25:03 · 8180 阅读 · 0 评论 -
使用线程池的好处
**降低资源消耗。**通过重复利用已创建的线程降低线程创建和销毁造成的消耗。**提高响应速度。**当任务到达时,任务可以不需要的等到线程创建就能立即执行。**提高线程的可管理性。**线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。...原创 2021-11-07 21:15:12 · 691 阅读 · 0 评论 -
Java中变量未初始化问题
今天遇到一个Java变量未初始化就使用的问题,后详细了解后才明白。Java中只有类成员变量才会默认初始化值。Int类型默认值为0,你定义的是方法内的局部变量,需要初始化才能进行运算。例子:public class Main { int var1 = 1; int var2; // 类成员变量 public static void main(String[] args) { int var3 = 3; Main main = new Main原创 2021-11-02 17:26:37 · 4360 阅读 · 0 评论 -
java程序的入口函数和初始化顺序
java程序中的入口就是main函数,jvm在运行程序的时候,会首先查找main()方法。其中public表明任何类或对象都可以访问这个方法。static表明了次方法中的代码是存储在静态存储区的,只要类被加载,就可以使用该方法而不需要实例化对象进行访问。一、 main方法的的其他写法1 由于static和public没有先后顺序关系static public void main(String[] args)2 也可以将main定义为finalpublic static final void mai转载 2021-11-02 17:15:33 · 1818 阅读 · 0 评论 -
Java创建对象的四种方式
1. new2. clone3. 通过反射newInstance4. 反序列化5. String s = “abc”(这个是比较特殊的)以String类为例String string = null;Class class1 = String.class;// 该方法最为安全可靠,程序性能更高。Class class2 = string.getClass();Class class3 = Class.forName(“java.lang.String”);// 可能抛出ClassNotFou转载 2021-11-02 17:12:01 · 8750 阅读 · 2 评论 -
JAVA注解的基本原理
没错,注解的本质就是一个继承了 Annotation 接口的接口。这是注解 @Override 的定义,其实它本质上就是:public interface Override extends Annotation{ }一个注解准确意义上来说,只不过是一种特殊的注释而已,如果没有解析它的代码,它可能连注释都不如。而解析一个类或者方法的注解往往有两种形式,一种是编译期直接的扫描,一种是运行期反射。...转载 2021-10-25 11:38:06 · 67 阅读 · 0 评论 -
List与String的相互转换
/** * list 转 string 逗号拼接 */ public static String listToString(List<String> list) { if (list == null) { return null; } return String.join(",", list); } /** * string 转 list */ ...转载 2021-10-15 14:26:38 · 419 阅读 · 0 评论 -
jvm内存模型
JVM架构三层架构:1.类加载器;2.运行时数据区;3.执行引擎;[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GcjUWaNV-1634022598899)(C:\Users\13035\AppData\Roaming\Typora\typora-user-images\image-20210902152807957.png)]运行时数据区栈帧图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gKBC5Ilb-16340225989原创 2021-10-12 15:16:11 · 124 阅读 · 0 评论 -
深入理解字符串常量池(StringTable)
什么是字符串常量池字符串的分配,和其他的对象分配一样,耗费高昂的时间与空间代价。JVM为了提高性能和减少内存开销,在实例化字符串常量的时候进行了一些优化。为 了减少在JVM中创建的字符串的数量,字符串类维护了一个字符串池,每当代码创建字符串常量时,JVM会首先检查字符串常量池。如果字符串已经存在池中, 就返回池中的实例引用。如果字符串不在池中,就会实例化一个字符串并放到池中。Java能够进行这样的优化是因为字符串是不可变的,可以不用担心数据冲突 进行共享string的string Pool是一个圉定大转载 2021-10-11 19:41:34 · 589 阅读 · 1 评论 -
什么是生产者消费者模式?
什么是生产者消费者模式?在工作中,大家可能会碰到这要一种情况:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。在生产者与消费者之间在加一个缓冲区,我们形象的称之为仓库,生产者负责往仓库里进商品,而消费者扶着从仓库里拿商品,这样就构成了生产者消费者模式。...转载 2021-08-18 09:23:10 · 266 阅读 · 0 评论 -
Java ReentrantLock
Java ReentranLock从Java 5 开始,引入了一个高级的处理并发的java.util.concurrent包,它提供了大量更高级的并发功能,能大大简化多线程程序的编写。我们知道Java语言直接提供了synchronized关键字用于加锁,但是这种锁一是很重,二是获取时必须一直等待,没有额外的尝试机制。java.util.concurrent.locks包提供了ReentrantLock用于替换synchronized加锁,我们来看一下传统的synchronized代码:public转载 2021-08-13 14:49:37 · 89 阅读 · 0 评论 -
Mybatis Plus踩坑 联表查询获取不到实体属性
Mybatis 踩坑 联表查询结果无法赋值到实体属性原因是两个实体中有相同的属性名,在使用了ResultMap之后,在select语句中就不要对相同的属性用 as ,这样Mybaits 会分辨不出是哪个实体的属性原创 2021-08-12 11:45:21 · 792 阅读 · 0 评论 -
Java常见的内部类
Java 常见的内部类java常见内部类有四种,静态内部类、成员内部类、方法内部类(局部内部类)、匿名内部类。静态内部类静态内部类是定义在另一个类里面用 static 修饰 class 的类,静态内部类不需要依赖于外部类(与类的静态成员属性类似)且无法使用其外部类的非 static 属性或方法(因为在没有外部类对象的情况下可以直接创建静态内部类的对象,如果允许访问外部类的非 static 属性或者方法就会产生矛盾)。成员内部类成员内部类是没有用 static 修饰且定义在在外部类类体中的类,是最普原创 2021-07-26 21:24:56 · 238 阅读 · 0 评论 -
java 流概念的理解
java 流概念的理解详细介绍一、“流”的概念 “流”是一个抽象的概念,它是对输入输出设备的一种抽象理解,在java中,对数据的输入输出操作都是以“流”的方式进行的。“流”具有方向性,输入流、输出流是相对的。当程序需要从数据源中读入数据的时候就会开启一个输入流,相反,写出数据到某个数据源目的地的时候也会开启一个输出流。数据源可以是文件、内存或者网络等。二、“流”的分类 “流”序列中的数据可以是未经加工的原始二进制数据,也可以是经过一定编码处理后符合某种格式的特定数据,因此java中的“流转载 2021-07-23 09:24:11 · 604 阅读 · 0 评论 -
Java的四种访问修饰符
Java的四种访问修饰符共有四个访问修饰符public protected friendly privatepublic 的作用域有当前类,同一个package,子孙类和其他的packageprotected的作用域有当前类,同一个package,和子孙类friendly的作用域有当前类和同一个packageprivate 的作用域只有当前类...原创 2021-07-22 14:15:32 · 66 阅读 · 0 评论 -
SpringDataRedis简介
SpringDataRedis简介1、Redisredis是一款开源的Key-Value数据库,运行在内存中,由C语言编写。企业开发通常采用Redis来实现缓存。同类的产品还有memcache 、memcached 等。2、JedisJedis是Redis官方推出的一款面向Java的客户端,提供了很多接口供Java语言调用。可以在Redis官网下载,当然还有一些开源爱好者提供的客户端,如Jredis、SRP等等,推荐使用Jedis。3、Spring Data RedisSpring-data-r转载 2021-07-19 22:22:08 · 230 阅读 · 0 评论 -
Spring aop xml配置文件
Spring aop xml配置文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" x原创 2021-03-19 15:05:04 · 82 阅读 · 0 评论 -
Spring IOC的自动注入
Spring IOC 的自动注入Spring IOC 的自动注入在 bean 标签上使用autowire属性设置自动注入规则<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocat原创 2021-03-18 22:41:44 · 200 阅读 · 2 评论 -
Spring IOC使用构造器创建对象的方式
Spring IOC使用构造器创建对象的方式通过无参构造器创建(默认)代码如下,在配置文件applicationContext.xmbeans标签内添加:<bean id="stu" class="com.ann.pojo.Student"></bean>通过有参构造器创建有参构造器: 在bean标签下使用constructor-arg子标签来声明要调用的有参数的构造器一个constructor-arg子标签标示一个参数。constructor-arg仅仅表示参数的个原创 2021-03-14 22:55:39 · 187 阅读 · 0 评论 -
Java学习之 JavaBean
JavaBeanjavaBean : 标准Java类1.要求:类必须被public修身必须提供空参的构造器成员变量必须使用private修饰提供公共的getter和setter方法2.功能: 封装数据原创 2021-02-05 20:49:17 · 71 阅读 · 0 评论 -
Servlet request获取请求行的数据(Java Web)
Servlet request获取请求行数据(Java Web)代码:package com.ann.httpServlet_test;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.ser原创 2021-02-03 11:30:32 · 179 阅读 · 0 评论 -
解决IDEA 启动Tomcat 时控制台乱码
IDEA 启动Tomcat 时控制台乱码问题问题描述:使用Intellij IDEA启动Tomcat,所以还是想把乱码改过来。乱码情况:IDEA默认展示的log信息中文全部乱码。解决方案: 修改Tomcat安装目录下的conf文件中的logging.porperty文件中的内容: 把需要修改的乱码log信息,对应的位置进行修改,我的是需要把UTF-8修改为GBK。 第28行,把UTF-8改为GBK,重启服务即可。 第33行,把UT转载 2021-02-02 16:41:19 · 117 阅读 · 0 评论 -
JDBC连接mysql8.0
JDBC连接mysql8.0package com.ann.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class JdbcDemo01 { public static void main(String[] args) throws ClassNotFoundException, S原创 2021-01-25 21:19:03 · 319 阅读 · 0 评论