Java
文章平均质量分 73
后端小哥_哈哈
这个作者很懒,什么都没留下…
展开
-
JAVA值传递 & 引用传递【超级详细】
JAVA值传递 & 引用传递发现篇好的文章,在此记录下:https://www.jianshu.com/p/d3edb33e2f73先解释一下分别是什么意思,值传递:作为参数传递时只传递了值,参数本身没有传递,如果被传递的方法改变传递后的变量参数值,原变量不会改变。在JAVA中显式的值传递参数是各类型变量例如: int double char String Integer 等都是。引用传递: 作为参数传递时传递的是参数本身,当被传递方法改变传递后的变量参数值,原参数也会发生改变。一般来说我们转载 2022-02-24 11:03:47 · 685 阅读 · 0 评论 -
ThreadLocal详解2
ThreadLocal详解2本篇博文为转载,转载连接:https://www.cnblogs.com/dreamroute/p/5034726.htmlThreadLocal翻译成中文比较准确的叫法应该是:线程局部变量。这个玩意有什么用处,或者说为什么要有这么一个东东?先解释一下,在并发编程的时候,成员变量如果不做任何处理其实是线程不安全的,各个线程都在操作同一个变量,显然是不行的,并且我们也知道volatile这个关键字也是不能保证线程安全的。那么在有一种情况之下,我们需要满足这样一个条件:变量是同转载 2022-02-09 14:25:21 · 189 阅读 · 0 评论 -
ThreadLocal详解1 -- 转载
ThreadLocal详解11、简介2、Spring中应用3、Slf4j 日志输出中的应用4、实现原理5、内存泄漏5.1、为什么使用弱引用5.2、最佳实践6、总结转载连接如下:https://www.jianshu.com/p/3bb70ae818281、简介ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(Thr转载 2022-02-09 11:57:27 · 99 阅读 · 0 评论 -
servlet 如何处理多请求访问以及线程讲解 很棒的文章 -- 转载
servlet 如何处理多请求访问以及线程讲解在学习并发,请求的时候产生了疑问,再此记录下这篇好文章,制作大自然的搬运工。转载连接:https://www.cnblogs.com/GtShare/p/8033637.html一、Servlet如何处理多个请求访问?Servlet容器默认是采用单实例多线程的方式处理多个请求的: 1.当web服务器启动的时候(或客户端发送请求到服务器时),Servlet就被加载并实例化(只存在一个Servlet实例); 2.容器初始化化Servlet主要就是读取配转载 2022-02-08 15:53:20 · 289 阅读 · 0 评论 -
JAVA线程/并发/请求的关系是怎么样的?精华 -- 转载
JAVA线程/并发/请求的关系是怎么样的?精华最近对线程并发请求有疑惑,度娘了一大圈,找了一些精华,在此总结记录下:转载连接如下:https://bbs.csdn.net/topics/360170441https://bbs.csdn.net/topics/360170441https://www.zhihu.com/question/41737405/answer/100743322https://www.cnblogs.com/GtShare/p/8033637.html(Servlet如转载 2022-02-08 15:05:35 · 1190 阅读 · 0 评论 -
Java中线程池原理以及参数说明 -- 转载
Java中线程池原理以及参数说明线程池的类结构线程池的基本原理线程池核心类ThreadPoolExecutor参数和拒绝策略本篇博文为转载,转载连接如下:https://www.cnblogs.com/guofuangela/p/14381030.htmlhttps://segmentfault.com/a/1190000019319050线程池的类结构Executor 的定义非常简单,就定义了线程池最本质要做的事,执行任务。public interface Executor {转载 2022-01-12 16:55:46 · 100 阅读 · 0 评论 -
javac 同时运行两个class类在一个java文件中
javac 同时运行两个class类在一个java文件中本博主最近在复习多线程的时候,发现一个问题,本博主竟然不会javac 同时运行两个class类在一个java文件中,故在此记录文本。贴图如下:源文件 Test.java代码详情如下:import java.util.Random;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;p原创 2022-01-12 11:35:13 · 2754 阅读 · 0 评论 -
synchronized与ReentrantLock的区别 -- 转载
synchronized与ReentrantLock的区别本篇文章为转载,转载连接如下:https://zhuanlan.zhihu.com/p/126085068① 底层实现上来说,synchronized 是JVM层面的锁,是Java关键字,通过monitor对象来完成(monitorenter与monitorexit),对象只有在同步块或同步方法中才能调用wait/notify方法,ReentrantLock 是从jdk1.5以来(java.util.concurrent.locks.Lock)提转载 2022-01-11 15:55:23 · 73 阅读 · 0 评论 -
stop() 和 suspend() 方法为何不推荐使用? --转载
stop和 suspend方法为何不推荐使用stop方法不安全suspend()方法容易发生死锁本篇博文为转载。链接如下:https://blog.csdn.net/wangdinghai365/article/details/8608184?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-0.no_search_link&spm=1001.2101.3001.4242.1&utm转载 2022-01-06 11:45:23 · 280 阅读 · 0 评论 -
单例详解 -静态内部类,饿汉,懒汉,dcl,枚举,静态代码块 -- 翻译
单例详解 -静态内部类,饿汉,懒汉,dcl,枚举,静态代码块枚举(最佳)容器实现单例(学习学习)饿汉式懒汉式(但由于同步器,每次都要同步,效率低)DCL模式下的懒汉式,(Double, Check,Lock双端检索机制),以及volatile,防止指令重排静态内部类反射攻击反序列化攻击饿汉式单例模式(静态代码块)本篇博文参考多篇博文。多谢各位博主,参考文献如下:https://www.jianshu.com/p/8fe210e6aeb9https://www.cnblogs.com/gradyblog原创 2021-12-22 16:06:36 · 565 阅读 · 0 评论 -
详解java中的4中代码块 -- 转载
详解java中的4中代码块 -- 转载代码总结本篇博文为转载 原文 https://www.jb51.net/article/129990.htm代码以下代码演示了创建一个对象并调用方法各个代码块之间的优先关系:public class Person { static{ System.out.println("1.我是静态块,优先于构造块执行!并且只有创建第一个对象的时候执行一次!"); } { System.out.println("2.我转载 2021-12-22 13:56:13 · 82 阅读 · 0 评论 -
CAS算法 ---转载
CAS算法一、CAS的定义一个线程失败或挂起并不会导致其他线程也失败或挂起,那么这种算法就被称为非阻塞算法。而CAS就是一种非阻塞算法实现,也是一种乐观锁技术,它能在不使用锁的情况下实现多线程安全,所以CAS也是一种无锁算法。CAS [公式] 比较并交换,是一种实现并发算法时常用到的技术,Java并发包中的很多类都使用了CAS技术。CAS具体包括三个参数:当前内存值V、旧的预期值A、即将更新的值B,当且仅当预期值A和内存值V相同时,将内存值修改为B并返回true,否则什么都不做,并返回false。CA转载 2021-08-16 19:00:46 · 222 阅读 · 0 评论 -
Java中的interrupt()中断线程(Interrupt 方法结束线程)-- 转载
@[TOC](Java中的interrupt()中断线程(Interrupt 方法结束线程))很多Java初级开发者(包括我)都知道终止一个正在运行的线程最好的方法不是JDK已废弃的stop()方法,而是用interrupt()或条件变量,但事实上真就那么简单吗?中断可以理解为线程的一个标志位属性,它表示一个运行中的线程是否被其他线程进行了中断操作。中断好比其它线程对该线程打了个招呼,其它线程通过调用该线程的interrupt()方法对其进行中断操作,相当于将该线程的中断标志位设置为true,而被中断的转载 2021-08-16 17:38:57 · 1214 阅读 · 0 评论 -
显式锁与隐式锁的区别和同步代码块的理解 -- 转载
显式锁与隐式锁的区别&同步代码块的理解引言隐式锁(Synchronized)同步代码块同步方法显式锁(Lock)两者的区别显式锁与隐式锁的区别一、构成不同二、使用方法不同三、等待是否可中断四、加锁的时候是否公平五、锁绑定多个条件来condition引言在多线程的程序中,JAVA为了具体的控制每个线程的,所以有了锁机制,锁又被分为显式锁和隐式锁.隐式锁(Synchronized)隐式锁中又分为同步代码块和同步方法,但是都是基于Synchronized关键字来实现的,因为他只需要是使用管关键字就转载 2021-03-24 17:13:47 · 237 阅读 · 0 评论 -
synchronized和Lock区别 --转载
synchronized和Lock区别(1)原始构成sychronized是关键字属于JVM层面的, monitorenter、monitorexit(底层是通过monitor对象来完成的,其实wait/notify方法也依赖于monitor对象,只有在同步块或者同步方法中才能调用wait/notify等方法);Lock属于具体类(java.util.concurrent.locks.lock)是api层面的锁。(2)使用方法synchronized不需要用户手动去释放锁,当synchroniz转载 2021-03-24 16:49:25 · 78 阅读 · 0 评论 -
Synchronized同步静态方法和非静态方法总结 --转载
Synchronized同步静态方法和非静态方法总结1.Synchronized修饰非静态方法,实际上是对调用该方法的对象加锁,俗称“对象锁”。情况1:同一个对象在两个线程中分别访问该对象的两个同步方法情况2:不同对象在两个线程中调用同一个同步方法2.Synchronized修饰静态方法,实际上是对该类对象加锁,俗称“类锁”。情况1:用类直接在两个线程中调用两个不同的同步方法情况2:用一个类的静态对象在两个线程中调用静态方法或非静态方法情况3:一个对象在两个线程中分别调用一个静态同步方法和一个非静态同步方法转载 2021-03-24 15:11:01 · 119 阅读 · 0 评论 -
一次性搞清线程安全问题精华篇 -- 转载
线程安全问题i++为什么不是线程安全的吗?关于线程安全的问题,你在写代码时,哪些场景下才需要注意呢?i++为什么不是线程安全的吗?i++不是原子操作,也就是说,它不是单独一条指令,而是3条指令(3条汇编指令):1. 从内存中把i的值取出来放到CPU的寄存器中2. CPU寄存器的值+13. 把CPU寄存器的值写回内存由于线程共享栈区,不共享堆区和全局区,所以当且仅当 i 位于栈上是安全的,反之不安全(++i 也同理). 因为如果是全局变量的话,同一进程中的不同线程都有可能访问到。对于读值,+1转载 2021-03-12 16:43:23 · 616 阅读 · 0 评论 -
进程与线程的区别 --转载
进程与线程的区别进程线程进程与线程的区别线程和进程关系示意图任务调度为何不使用多进程而是使用多线程?对线程和进程的理解一直处于背诵面试的阶段,今天网上搜索,看了一篇讲解很好的文章,在此记录下,转载哈,谢谢进程我们都知道计算机的核心是CPU,它承担了所有的计算任务,而操作系统是计算机的管理者,它负责任务的调度,资源的分配和管理,统领整个计算机硬件;应用程序是具有某种功能的程序,程序是运行于操作系统之上的。进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的转载 2021-03-11 16:10:14 · 105 阅读 · 0 评论 -
双重校验锁实现单例模式(对象单例,线程安全)-- 转载
双重校验锁实现单例模式(对象单例,线程安全)public class Singleton { //采用volatile修饰 private volatile static Singleton singleton; //构造方法私有化 private Singleton(){} //双重校验锁 public static Singleton getInstance(){ //先判断对象是否已经实例过,没有实例化过才进入加锁代码转载 2021-02-23 12:19:48 · 221 阅读 · 0 评论 -
函数式接口和lambad表达式有什么关系?--转载
函数式接口和lambad表达式有什么关系今天在学习一门视频课程的时候,看到了问答区的回复,在此做了记录。谢谢在 java 中,lambda 表达式与函数式接口是不可分割的,都是结合起来使用的。对于函数式接口,我们可以理解为只有一个抽象方法的接口,除此之外它和别的接口相比并没有什么特殊的地方。为了确保函数式接口的正确性,我们可以给这个接口添加 @FunctionalInterface 注解(当然,也可以不加此注解),这样当其中有超过一个抽象方法时就会报错。exp:定义一个函数式接口:@Functi转载 2021-01-06 13:53:37 · 178 阅读 · 1 评论 -
Jsp+Servlet 处理图片数据库显示base64
Jsp+Servlet 处理图片数据库显示最近在做一个小demo,类似个性头像上传至后台数据库,采用base64存储,然后点击详情,显示上传的个性头像。再此处做个记录,当然也借鉴了一些大佬。Thanks♪(・ω・)ノ,如果对小伙伴们有帮助,麻烦点个赞好不,废话不多说进入正题。1、点击修改 跳转修改页面 点击明细 跳转明细页面 当前登录账号用户名为 12、修改页面 上传头像 点击修改返回 分页面3、明细页面 展示头像4、新鲜代码出炉了 modify.jsp实现文原创 2020-06-29 10:22:17 · 1166 阅读 · 0 评论 -
在数据库中用来存储图片&流
在数据库中用来存储图片&流建表获取数据库连接封装读取图片的流实现图片(本地、数据库互相传输)感谢大佬的分享,亲测有效 这里做个记录,防止将来丢失转载:http://www.cnblogs.com/warrior4236/p/5682830.html建表获取数据库连接public class DBUtils { //定义数据库连接参数 public static final String DRIVER_CLASS_NAME="com.mysql.jdbc.Driver"; pub转载 2020-06-29 10:35:10 · 1232 阅读 · 0 评论 -
原生js上传文件,使用new FormData() --转载
@[TOC](原生js上传文件,使用new FormData())最近在做有关文件上传方面的,网上找到这篇好文,在此记录下,防止丢失。3q当创建一个内容较多的表单,表单里面又有了文件上传,文件上传也需要表单提交。单一的上传文件很好操作,如下:<form action="接口" enctype="multipart/form-data" method="post"> <input type="file" name="uploadFile"/> <input转载 2020-12-07 13:03:43 · 2065 阅读 · 0 评论 -
classpath讲解-转载
classpath讲解-转载今天在复习项目的时候,看了配置,发现对classpath不是很了解,网上查阅总结下。谢谢在maven工程以及ssm框架的配置中,常常出现classpath,那classpath究竟是什么?第一,在普通项目中,类路径classpath就是WEB-INF/classes和lib下的路径。例如,下图的jdbcConfig.properties的类路径就是:config/jdbcConfig.properties第二,idea的maven工程中,类路径指的是src/main/ja转载 2020-09-16 14:01:04 · 1166 阅读 · 0 评论 -
Servlet的response.getWriter.print&JSP
Servlet的response.getWriter.print&JSP今天在浏览以前笔记复习下跨域的时候发现,对这种servlet中的response.getWriter.print(“内容”); HttpServletResponse输出的结果不是很清楚,so百度了相关文章或者回答,谢谢 ,在此记录下:知识点一String name = request.getParameter(“name”); // 这个name是读jsp页面里面name例如: <input type=“te翻译 2020-08-27 09:49:06 · 1213 阅读 · 0 评论 -
Java 定义枚举类--转载百度经验
Java 定义枚举类一、定义枚举类二、使用枚举java定义枚举这里个人不太会,so度娘了下,发现百度经验写的很好,在此记录下。谢谢!转载地址:https://jingyan.baidu.com/article/1876c852c6c358c90a137628.html一、定义枚举类定义枚举需要将类声明为enum类型。public class SysConstant { //这里可以忽略 //public static final String CAPTCHA_KEY="KAPTCHA"转载 2020-08-11 14:26:01 · 124 阅读 · 0 评论 -
mysql中的date、datetime、timestamp类型与java date之间的转换问题-转载
mysql中的date、datetime、timestamp类型与java date之间的转换问题java中Date和String之间的转换mysql中date、datetime、timestamp类型的说明转载的哈,做下记录,防止丢失。谢谢java中Date和String之间的转换/***程序1*将date转换成String*得到像 2018-11-26 这种格式的日期字符串*/public static String gainDate(Date date){ SimpleDate转载 2020-08-03 19:28:29 · 496 阅读 · 1 评论 -
集合大满贯III
集合大满贯IIIMap接口概述Map常用方法Map常用实现类HashMapMap接口概述Map接口是将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。cn—>中国uk—>英国us—>美国Map常用方法clear()从此映射中移除所有映射关系(可选操作)。containsKey(Object key)如果此映射包含指定键的映射关系,则返回 true。containsValue(Object value)如果此映射将一个或多个键映射到指定值,原创 2020-06-09 15:48:17 · 242 阅读 · 0 评论 -
集合大满贯 II
集合大满贯 IISet接口常用方法set存储特点set方法 代码上机Set常用实现类HashSet重写hashCode()重写equals()HashSet集合实现排重LinkedHashSetTreeSet集合TreeSet集合的元素排序[自然排序、定制排序]SortedSet接口Last DemoSet接口常用方法add(E e)确保此 collection 包含指定的元素(可选操作)。addAll(Collection<? extends E> c)将指定 collection原创 2020-06-09 13:47:35 · 355 阅读 · 0 评论 -
集合大满贯
集合大满贯概念集合的框架结构图概念集合:就是一个存储数据的容器 下面这段话很重要,多读几遍好不集合与数组一样,也是一个容器,与数组不同的是,数组长度固定,集合的长度不定,可以无限的向集合中添加元素,而且集合中存储的元素类型只能是引用类型,数组可以存储基本类型和引用类型。注意:任何一种数据类型或者对象放进容器中后都会失去原有的类型,变成 Object,用的时候从容器中取出后进行转型成所需的类型就可以了。《Think in java》 中是这样解释的: 由于当初编写集合时,那个集合的程序员根本不知原创 2020-06-09 10:19:32 · 298 阅读 · 0 评论 -
Calendar类 & 异常 & 自定义异常类
Calendar类 & 异常 & 自定义异常类Calendar类异常常见的运行时异常非运行时异常(编译时异常)异常处理自定义异常类Calendar类输出今天是今年中的第几天,第几周public static void main(String[] args) { Calendar c=Calendar.getInstance(); int day=c.get(Calendar.DAY_OF_YEAR); int week=c.get(Calendar.WEEK_OF_YE原创 2020-06-08 17:01:39 · 440 阅读 · 0 评论 -
Runtime类 & 修改jvm内存
Runtime类 & 修改jvm内存Runtime类exec(command) 在单独的进程中执行指定的字符串命令exit(int status) 退出jvm System.exit(); 内部调用runtime.exit();获取jvm的内存修改jvm内存扩展 : 修改程序运行参数:通过程序运行参数输入数据Runtime类每个 Java 应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接。可以通过getRuntime方法获取当前运行时。exec(command)原创 2020-06-08 16:46:10 · 301 阅读 · 0 评论 -
单例设计模式 & 简单工厂设计模式 & lambda表达式
单例设计模式 & 简单工厂设计模式 & lambda表达式单例设计模式懒汉式饿汉式思考:懒汉式和饿汉式有什么区别?简单工厂设计模式lambda表达式话说着lambda表达式跟es6的箭头函数长得好像hhahahahahahahaaha单例设计模式核心:构造方法私有:不能在类外随意创建对象在类内部声明一个本类静态的对象作为属性提供一个公有静态的方法用来获取本类对象懒汉式public class SingleTon { private SingleTon(){ } priv原创 2020-06-08 15:51:03 · 898 阅读 · 0 评论 -
抽象类 & 接口
抽象类 & 接口抽象类为什么使用抽象类抽象类abstract关键字抽象方法抽象类特点抽象类和普通类的区别final和abstract是否可以连用abstract的使用接口接口的概念使用接口的好处接口的特点语法interface的实现与使用接口中特殊的方法面试题接口和抽象类有什么区别?扩展面试题抽象类为什么使用抽象类-有些类创建对象没有意义。需要把这个定义为抽象类exp:1 Animal animal=new Animal();2 Pet pet=new Pet()这里的动物类就比较抽原创 2020-06-08 15:02:16 · 406 阅读 · 0 评论 -
Object类 &多态 & final关键字&instanceof &复习代码块 &面试题
Object类 &多态 & final关键字&instanceof &复习代码块 &面试题Object类equals()方法==操作符与equals方法的区别:hashCode()方法getClass()方法toString()方法多态多态实现步骤:多态使用形式:向上转型,向下转型向上转型:将子类的对象赋值给父类变量,自动转换向下转型:将父类的变量赋值给子类变量,强制转换Object obj = new String("abc");final关键字final修饰变量(原创 2020-06-08 12:47:31 · 228 阅读 · 0 评论 -
封装 & 代码块 & 继承 & super关键字 & 包 & 访问权限 & 重写与重载
封装 & 代码块 & 继承 & super关键字 & 包 & 访问权限 & 重写与重载封装代码块继承super关键字包访问权限重写与重载我要宣布一件大事,我有粉丝了,哈哈哈哈哈哈哈哈啊哈哈哈啊哈,激动的❤,颤抖的手,我要继续加油了今天第一次用md绘制表格,淡定封装什么是封装:在类中,对于不想被类外直接访问的成员变量,进行私有化,同时对外提供一个公有的方法为了访问私有的成员。封装成员变量两个步骤:1 添加private2 添加get和set方法原创 2020-06-05 18:37:25 · 217 阅读 · 0 评论 -
类 & 对象的创建 & JVM内存分配分析 & 构造方法普通方法&this
类 & 对象的创建 & JVM内存分配分析 & 构造方法普通方法&this类对象创建JVM内存分配分析构造方法普通方法构造方法和普通方法的区别构造方法重载this类public class Person { //成员变量 String name;//姓名 String sex;//性别 int height;//身高 int weight;//体重 //方法 //吃 public void eat() { System.out.println(原创 2020-06-05 14:42:42 · 169 阅读 · 0 评论 -
Arrays工具类&二维数组&可变参数&方法参数
Arrays工具类&二维数组&可变参数&方法参数Arrays工具类二维数组可变参数方法参数基本类型作为方法的参数引用类型作为方法的参数基本类型作为方法返回值引用类型作为方法返回值Arrays工具类作用:主要用于对数组进行排序,查找,填充,比较等的操作Arrays工具类存在于java.util包下,所以使用的第一步就是导包:import java.util.Arrays;注意:如果在同一个Java文件中同时使用Scanner和Arrays,则可以向如下方式导包:import原创 2020-06-05 13:55:23 · 244 阅读 · 0 评论 -
方法&递归&重载
方法&递归&重载方法方法调用方法重载递归最近在看以前的一些笔记,打算都整理下,减轻下电脑磁盘大哥的负担。如果对小伙伴有作用,麻烦点个赞 比个❤方法//语法://访问权限修饰符 其他修饰符 返回值类型 方法名称(参数列表) {// //方法体【函数体】// return 返回值;//}4.拥有返回值的方法public static int sum4(int a,int b){ return a+b;}1. 最简单的无参方法void sum1(){ System原创 2020-06-05 13:00:17 · 159 阅读 · 0 评论 -
数组、冒泡,选择排序、顺序,二分查找
数组、冒泡,选择排序、顺序,二分查找数组数组声明静态初始化动态初始化数组遍历 foreach 简单for循环数组内存分配冒泡排序选择排序顺序查找二分法查找经常不写数组的我,都快忘记咋写数组了,最近整好复习,今天记录下,勿忘初心数组数组声明方式一:数据类型[] 数组名 方式二:数据类型 数组名[]推荐使用方式一,C#等越来越多的语言已经不支持方式二定义数组Java中的数组必须先初始化,然后才可以使用,所谓初始化,就是为数组中的数组元素分配内存空间,并为每个数组元素赋初始值静态初始原创 2020-06-05 11:00:52 · 241 阅读 · 0 评论