![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 83
0 and 1
学习交流Java技术,从入门到大神!!!
展开
-
深入了解SpringCloud面试专题
问题一:什么是SpringCloud?Springcloud流应用程序启动器是基于SpringBoot的Spring集成应用程序,提供与外部系统的集成。SpringcloudTask,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序。问题二:使用SpringCloud有什么优势?使用SpringBoot开发分布式微服务时,我们面临以下问题与分布式系统相关的复杂性-这种开销包括网络问题,延迟开销,带宽问题,安全问题。服务发现-服务发现工具管理群集中的流程和服务如何查找和互相交谈原创 2021-04-07 21:05:32 · 232 阅读 · 0 评论 -
面试必备之乐观锁与悲观锁
何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Jav原创 2021-04-07 17:24:31 · 199 阅读 · 0 评论 -
深入理解SpringMVC【带有代码实现】
一、MVC思想MVC思想简介:MVC并不是java所特有的设计思想,也不是Web应用所特有的思想,它是所有面向对象程序设计语言都应该遵守的规范;MVC思想将一个应用部分分成三个基本部分:Model(模型)、View(视图)和Controller(控制器),这三个部分以最少的耦合协同工作,从而提高应用的可扩展性和可维护性;MVC特点:多视图对应一个模型。按MVC模式,一个模型对应多个视图,可以减少代码的复制和维护量,这样一旦模式改变,易于维护;模型返回的数据和显示的逻辑分离。模型数据原创 2021-04-02 18:01:23 · 370 阅读 · 1 评论 -
详解springboot自动配置解析
用过springboot的肯定很熟悉,它其中有个重要的特性,就是自动配置(平时习惯的一些设置的配置作为默认配置)。springboot提倡无XML配置文件的理念,使用springboot生成的应用完全不会生成任何配置代码与XML配置文件。下面先看一个springboot集成mybatis的例子。第一步: 引入pom文件 <dependency> <groupId>org.mybatis.spring.boot</groupId>原创 2021-04-02 15:44:05 · 117 阅读 · 0 评论 -
雷军谈造车:这是我最后一次创业,会押上所有,为小米汽车而战!
在3月30日的小米春季发布会上,雷军谈到了今日被抄的沸沸扬扬的造车。雷军表示,今年1月15日开始调研造车。此前两次造访马斯克,自己对电动汽车产业非常看好,过去也投了接近10家电动汽车产业公司。今年1月15号,董事会建议研究电动汽车前景。当时雷军认为,手机这场仗还没有打完,担心造车是否会分心。1月15日开始认真调研造车。雷军表示,自己非常清楚汽车行业的风险,而且动辄百亿规模的投资,而且要3-5年才能够见效。但是雷军也表示,现在的小米已经有了积累,公司截至2020年底,有1080亿元现金余额。而.原创 2021-04-01 19:25:03 · 186 阅读 · 0 评论 -
是不是程序员都不过愚人节的???
你听说了么!今年愚人节公司放假!不要去上班哦~不相信?因为愚人节是礼拜天啊……转眼又是一年一度的整蛊佳节愚人节了小编在这给大家拜个晚年!相信大家都知道,程序员界有句老话儿:「四月一号不整蛊,bug 多到没法数!」怎么样,今年的愚人节套路你,准备好了吗?你说你已经准备了奥利奥?还买好了芥末和牙膏?大哥你信我,没有人会在愚人节那天吃别人递来的食物。既然是程序员,就来点高级的整蛊套路!特地为你准备了几条「馊主意」祝你玩出风格,整出特色!初级馊主意:给颈椎做个操吧操作指南:1原创 2021-04-01 18:10:32 · 234 阅读 · 0 评论 -
重点讲解Java多线程【有点长,错过了就永远错过了!!!】
1. 什么是线程?1、线程是操作系统能够进⾏运算调度的最⼩单位,它被包含在进程之中,是进程中的实际运作单位,可以使⽤多线程对进⾏运算提速。⽐如,如果⼀个线程完成⼀个任务要100毫秒,那么⽤⼗个线程完成改任务只需10毫秒##2. 什么是线程安全和线程不安全?1、线程安全线程安全: 就是多线程访问时,采⽤了加锁机制,当⼀个线程访问该类的某个数据时,进⾏保护,其他线程不能进⾏访问,直到该线程读取完,其他线程才可使⽤。不会出现数据不⼀致或者数据污染。Vector 是⽤同步⽅法来实现线程安全的, ⽽和原创 2021-03-31 18:36:46 · 1668 阅读 · 0 评论 -
Java设计模式面经案例及答案【持续更新中...】
主题:下面这篇文章是讲解Java设计模式面试题详解,可以参考建议收藏,有什么不懂的可以私信博主或加博主Q 964579967JDK 中有几个常用的设计模式?单例模式(Singleton pattern)用于 Runtime,Calendar 和其他的一些类中。工厂模式(Factory pattern)被用于各种不可变的类如 Boolean,像 Boolean.valueOf,观察者模式(Observer pattern)被用于 Swing 和很多的事件监听中。装饰器设计模式(Decoratordes原创 2021-03-31 17:45:01 · 256 阅读 · 0 评论 -
Java面经问题解析(持续更新中)
inal, finally, finalize 的区别简单区别:final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,供垃圾收集时的其他资源回收,例如关闭文件等。int 和 Integer 有什么区别1.Integer是int的包装类,int则是java的一种基本数据类型2.Integer变量必须实例化后才能使用,而in原创 2021-03-31 13:47:51 · 130 阅读 · 0 评论 -
一个程序员的迷茫
35岁,对于浩瀚的宇宙来说,或许微不足道,但是对于人生来说,却是那么重要。试问一下,人这一辈子,有几个35年可以供我们挥霍逍遥。程序员,一个神奇的行业,从诞生到现在,从来都不缺少话题。和很多专业运动员一样,这个行业也是吃青春饭的,35岁,对程序员来说,或许就是人生的分水岭。有些问题我们不得不考虑。第一个问题,身体。作为开发人员,免不了加班加点,尤其是项目上线前期,整个人神经崩的仅仅的,就好比弦上的箭一样,随时待发,身体也免不了被摧残,因为小编深有体会。“想当年,意气风发,身强力壮,迎风尿三丈;而如今,廉颇原创 2021-03-31 13:07:53 · 180 阅读 · 0 评论 -
Spring系列之【SpringMVC环境搭建】
SpringMVC (一)springMVC环境的搭建1.新建maven工程,选择骨架创建,web-app2.完善目录结构,添加java与resources3.maven导入依赖<!--版本控制--><properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</mave原创 2021-03-30 19:49:22 · 165 阅读 · 0 评论 -
MyBatis系列之【框架】
MyBatis 框架基本使用及深入理解主题: 本文对 Mybatis 框架相关内容进行整理,从最开始使用JDBC 操作数据库,理解 DAO 层底层需要执行的步骤,到仿照 MyBatis 自定义框架,对 MyBatis 框架结构进行梳理。之后再介绍 MyBatis 框架的基本使用以及常用特性,了解 MyBatis 的日常应用,最后深入框架源码去感受 MyBatis 框架的精妙设计。有什么不懂的可以私信博主或加Q君:826021115public static void main(String[] a转载 2021-03-30 19:21:19 · 68 阅读 · 0 评论 -
MyBatis系列之【第一个MyBatis程序】
1.框架是什么框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。因此构件库的大规模重用也需要框架。个人理解:框架最重要的是把我们常用的,可以重复使用的原创 2021-03-30 18:57:24 · 184 阅读 · 0 评论 -
【深入详解】核心机制之Java跨平台原理
Java是一门跨平台语言,所谓跨平台就是,Java源文件会被编译成为字节码文件,不管是Windows,Linux还是Mac,都有其适配的JVM,也就是字节码文件可以随意在这些JVM上去运行。接下来我们来讲Java跨平台原理,博主都会根据Java学习路线分享技术知识,感兴趣可以私信加V哦~Write once,run anywhere.其他的语言,例如c语言,编译成为机器码之后,由于底层的机器语言支持不一样,编译后的机器语言文件是不可以跨操作系统运行的。而Java则是把兼容的工作,交给了JV原创 2021-03-26 19:04:51 · 132 阅读 · 0 评论 -
详解缓存穿透、击穿、雪崩问题
缓存穿透什么是缓存穿透正常情况下,查询的数据都存在,如果请求一个不存在的数据,也就是缓存和数据库都查不到这个数据,每次都会去数据库查询,这种查询不存在数据的现象我们称为缓存穿透穿透带来的问题如果每次都拿一个不存在的id去查询数据库,可能会导致你的数据库压力增大解决办法缓存空值之所以发生穿透,是因为缓存中没有存储这些数据的key,从而每次都查询数据库我们可以为这些key在缓存中设置对应的值为null,后面查询这个key的时候就不用查询数据库了当然为了健壮性,我们要对这些key设置过期时间,以原创 2021-03-25 21:27:33 · 163 阅读 · 0 评论 -
深入了解Spring底层原理-IOC
一、概述Spring是一个轻量级的开源JavaEE框架Spring可以解决企业应用开发的复杂性Spring两大核心部分:IoC和AOP特点:方便解耦,简化开发AOP编程支持方便程序测试方便和其他框架整合方便事务操作降低API开发难度IoC和AOP是Spring的核心,分析其原理:二、IoC解耦推导我们都知道,IoC是控制反转,通俗讲就是把对象创建和对象之间的调用交给Spring管理,通过简单的xml配置就可以创建和调用对象,其主要目的就是解耦,降低代码之间的耦合度,咱们就从传原创 2021-03-25 19:06:12 · 169 阅读 · 0 评论 -
Java面试问题大全(掌握迅速通关)
这里,笔者结合自己过往的面试经验,整理了一些核心的知识清单,帮助读者更好地回顾与复习 Java 服务端核心技术。本文会以引出问题为主,后面有时间的话,笔者陆续会抽些重要的知识点进行详细的剖析与解答。敬请关注+V XKangKang_Y 获取最新Java资料。基础篇基本功面向对象的特征inal, finally, finalize 的区别int 和 Integer 有什么区别重载和重写的区别抽象类和接口有什么区别说说反射的用途及实现说说自定义注解的场景及实现HTTP 请求的 G.原创 2021-03-24 17:56:38 · 176 阅读 · 1 评论 -
Java动态代理是如何实现的?
一、概述1. 什么是代理我们大家都知道微商代理,简单地说就是代替厂家卖商品,厂家“委托”代理为其销售商品。关于微商代理,首先我们从他们那里买东西时通常不知道背后的厂家究竟是谁,也就是说,“委托者”对我们来说是不可见的;其次,微商代理主要以朋友圈的人为目标客户,这就相当于为厂家做了一次对客户群体的“过滤”。我们把微商代理和厂家进一步抽象,前者可抽象为代理类,后者可抽象为委托类(被代理类)。通过使用代理,通常有两个优点,并且能够分别与我们提到的微商代理的两个特点对应起来:优点一:可以隐藏委托类的实原创 2021-03-24 16:29:06 · 126 阅读 · 0 评论 -
Activiti核心API
本章概述流程引擎及服务流程引擎存储服务RepositoryService管理流程定义文件xml及静态的服务对特定的流程的暂停和激活流程定义启动权限管理部署文件构造器DeploymentBuilder部署文件查询器DeploymentQuery流程定义文件查询对象ProcessDefinitionQuery流程部署文件对象Deployment流程定义文件对象ProcessDefinittion流程定义的Java格式BpmnModel(BpmnModel是纯Java的数据结构List原创 2021-03-24 14:53:51 · 251 阅读 · 0 评论 -
枚举真的那么简单吗?
在本文中,我们将看到什么是 Java 枚举,它们解决了哪些问题以及如何在实践中使用 Java 枚举实现一些设计模式。enum关键字在 java5 中引入,表示一种特殊类型的类,其总是继承java.lang.Enum类,更多内容可以自行查看其官方文档。枚举在很多时候会和常量拿来对比,可能因为本身我们大量实际使用枚举的地方就是为了替代常量。那么这种方式由什么优势呢?以这种方式定义的常量使代码更具可读性,允许进行编译时检查,预先记录可接受值的列表,并避免由于传入无效值而引起的意外行为。下面示例定义一个简原创 2021-03-24 14:30:21 · 74 阅读 · 0 评论 -
如何成为一名优秀的架构?
架构师都做些什么?架构设计架构师,顾名思义,第一职责就是在软件设计阶段,做好软件「骨架」的设计。架构师需要把产品的需求翻译成软件工程的设计文档,确定各个系统与模块的边界,评估系统的量级。技术选型从前端到后端,从缓存到数据库,面对为数众多的第三方组件,架构师需要作出合理的选择。前端页面选择模板引擎还是动静分离?服务端选择 Java 还是 Node.js?服务治理选择 DubboX 还是 Spring Cloud?消息队列选择 RocketMQ 还是 Kafka?分布式缓存选择 Red...原创 2021-03-23 17:39:54 · 210 阅读 · 1 评论 -
redis远程连接方法(建议收藏!)
目录一.解决方法1、修改redis服务器的配置文件vim redis.conf注释以下绑定的主机地址\# bind 127.0.0.1vim redis.conf关闭安全模式,安全模式必须使用签名和密码进行登录.protected-mode no2、开启 6379端口vim /etc/sysconfig/iptablesyyp复制22号端口开放,修改为6379一、pom依赖<dependencies> <!--web依赖-->原创 2021-03-23 15:50:43 · 1257 阅读 · 1 评论 -
JVM调优【三】
标记整理算法对于老年代,回收的垃圾较少时,如果采用复制算法,则效率较低。标记整理算法的标记操作和“标记-清除”算法一致,后续操作不只是直接清理对象,而是在清理无用对象完成后让所有存活的对象都向一端移动,并更新引用其对象的指针。很显然,整理这一下需要时间,所以与标记清除算法相比,这一步花费了不少时间,但从长远来看,这一步还是很有必要的。分代收集算法针对不同的年代进行不同算法的垃圾回收,针对新生代选择复制算法,对老年代选择标记整理算法。垃圾收集器Java的应用很广,内存区域也很多,可以使用不同的原创 2021-03-23 14:25:14 · 201 阅读 · 2 评论 -
JVM调优【二】
运行时常量池每一个运行时常量池都在java虚拟机的方法区中分配。例如在Java中字符串的创建会在常量池(方法区中StringTable:HashSet)中进行:public class Changliang { public static void main(String[] args) { // s1与s2是相等的,为字节码常亮 String s1 = "abc"; String s2 = "abc"; // s3创建原创 2021-03-23 14:08:37 · 94 阅读 · 2 评论 -
JVM调优【一】
Java的发展Java之父:詹姆斯·高斯林最早语言为Oak,用于嵌入式系统,没有成功;1995年互联网发展,改名为Java,开始火爆,提出Write once run any where的原则;1996年1月 发布JDK1.0,jvm为Sun Classic VM;1996年5月 首届JavaOne大会;1997年2月 JDK1.1(内部类、反射、jdbc、javabean、rmi);1998年 JDK1.2 发布J2Se J2EE J2ME swing jit Hotspot VM;20原创 2021-03-23 13:53:43 · 120 阅读 · 3 评论 -
Hibernate项目搭建技术要点
一.Hibernate是什么?Hibernate: 冬眠属于持久层框架: 操作数据库的框架.属于ORM框架的范畴二.ORM是什么?Object Relational Mapping: 对象关系映射型框架.关系映射:将java的对象对应数据库的表的一行数据. (java Object table row)将java对象中的属性对应数据库表中的列. (Object field row column)三.为什么要使用Hibernate?1.可以自动生成连接管理类(B原创 2021-03-22 17:48:40 · 132 阅读 · 1 评论 -
Java循环数组技术练习
1、声明一个字符串的数组,空间为5个。使用循环接收五个学生的姓名。再使用循环输出这五个学生的姓名.String[] a1=new String[5];for(int a2=0;a2<a1.length;a2++){ System.out.println("请输入第"+(a2+1)+"个学生的姓名:"); a1[a2]=input.next();}/*给大家推荐一个免费的学习交流君样:826021115 */for(int a2=0;a2<a1.length;a2+.原创 2021-03-22 17:21:50 · 1750 阅读 · 1 评论 -
BIO、NIO 和 AIO 的区别?
BIO、NIO 和 AIO 的区别?**BIO:**一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理。线程开销大。伪异步 IO:将请求连接放入线程池,一对多,但线程还是很宝贵的资源。**NIO:**一个请求一个线程,但客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有 I/O 请求时才启动一个线程进行处理。**AIO:**一个有效请求一个线程,客户端的 I/O 请求都是由 OS 先完成了再通知服务器应用去启动线程进行处理,BIO 是面向流的,NIO 是面向缓冲区原创 2021-03-16 16:10:56 · 114 阅读 · 0 评论 -
Linux 中主要有哪几种内核锁?
Linux 中主要有哪几种内核锁?Linux 的同步机制从 2.0 到 2.6 以来不断发展完善。从最初的原子操作,到后来的信号量,从大内核锁到今天的自旋锁。这些同步机制的发展伴随 Linux 从单处理器到对称多处理器的过渡;伴随着从非抢占内核到抢占内核的过度。Linux 的锁机制越来越有效,也越来越复杂。Linux 的内核锁主要是自旋锁和信号量。自旋锁最多只能被一个可执行线程持有,如果一个执行线程试图请求一个已被争用(已经被持有)的自旋锁,那么这个线程就会一直进行忙循环——旋转——等待锁重新可用。要原创 2021-03-16 15:45:11 · 592 阅读 · 0 评论 -
并发编程面试专题
1)现在有 T1、T2、T3 三个线程,你怎样保证 T2 在 T1 执行完后执行,T3 在 T2 执行完后执行?这个线程问题通常会在第一轮或电话面试阶段被问到,目的是检测你对”join”方法是否熟悉。这个多线程问题比较简单,可以用 join 方法实现。2)在 Java 中 Lock 接口比 synchronized 块的优势是什么?你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它?lock 接口在多线程和并发编程中最大的优势是它们为读和写分别提供了原创 2021-03-16 15:01:49 · 55 阅读 · 0 评论