51CTO首页
AI.x社区
博客
学堂
精品班
软考社区
免费课
企业培训
鸿蒙开发者社区
信创认证
公众号矩阵
移动端
视频课
免费课
排行榜
短视频
直播课
软考学堂
全部课程
软考
信创认证
华为认证
厂商认证
IT技术
PMP项目管理
免费题库
在线学习
文章
资源
问答
课堂
专栏
直播
51CTO
鸿蒙开发者社区
51CTO技术栈
51CTO官微
51CTO学堂
51CTO博客
CTO训练营
鸿蒙开发者社区订阅号
51CTO软考
51CTO学堂APP
51CTO学堂企业版APP
鸿蒙开发者社区视频号
51CTO软考题库
鸿蒙开发者社区
首页
帖子
问答
资源
课堂
直播
发现
登录/注册
51CTO
中国优质的IT技术网站
51CTO博客
专业IT技术创作平台
51CTO学堂
IT职业在线教育平台
活动
短视频
专栏
极客Show
鸿蒙技术特刊
我的关注
全部帖子
操作系统
OpenHarmony
HarmonyOS
其他
应用开发
卡片开发
三方库
IDE
其他
设备开发
海思开发板
树莓派
其他
框架语言
C/C++
Java
JavaScript
ArkUI / eTS
其他
其他
物联网
云原生
数据库
操作系统
大数据
人工智能
开发语言
其他
社区版务
社区公告
社区生活
社区规则
意见反馈
社区活动
默认
发布时间
热度
原创
精华
热门标签
harmony
纯血
harmonyos
#冲刺创作新星#线程通信
原创
线程通信volatile和synchronized关键字任意线程对Object(Object由synchronized保护)的访问,首先要获得Object的监视器。如果获取失败,线程进入同步队列,线程状态变为BLOCKED。当访问Object的前驱(获得了锁的线程)释放了锁,则该释放操作唤醒阻塞在同步队列中的线程,使其重新尝试对监视器的获取。等待通知机制notify():通知一个在对象上等待的线程,使其从wait()方法返回,而返回的前提是该线程获取到了对象的锁notifyAll(...
急需吃饭的小谢
0回复
4987浏览
JUC
#冲刺创作新星#线程简介
原创
线程简介六种线程状态NEW:初始状态,线程被构建,但是还没有调用start方法RUNNABLE:运行状态,Jaⅵa线程将操作系统中的就绪和运行两种状态笼统地称作“运行中BLOCKED:阻塞状态,表示线程阻塞于锁WAITING:等待状态,表示线程进入等待状态,进入该状态表示当前线程需要等待其他线程做出一些特定动作(通知或中断)TIMEWAITING:超时等待状态,该状态不同于WAITING,它是可以在指定的时间自行返回的TERMINATED:终止状态,表示当前线程已...
急需吃饭的小谢
0回复
4208浏览
JUC
#冲刺创作新星#java内存模型之双重检查锁定与线程安全的延迟初始
原创
java内存模型之双重检查锁定与线程安全的延迟初始化双重检查锁定javapublicclassUnsafeLazyInitialization{privatestaticInstanceinstance;publicstaticInstancegetInstance(){if(instancenull)1:A线程执行instancenewInstance();2:B线程执行returninstance;}}javapublicclassSafeLazyInitialization{privatestaticInstanceinstance;publicsynchronizedstaticInstancegetInstance(){if(instancenull)instancenewInstance();re...
急需吃饭的小谢
0回复
3509浏览
JUC
#冲刺创作新星#java内存模型之happenbefore原则
原创
java内存模型之happenbefore原则JMM其实是在遵循一个基本原则:只要不改变程序的执行结果(指的是单线程程序和正确同步的多线程程序),编译器和处理器怎么优化都行。happensbefore关系的定义happensbefore关系的定义如下。1)如果一个操作happensbefore另一个操作,那么第一个操作的执行结果将对第二个操作可见,而且第一个操作的执行顺序排在第二个操作之前。2)两个操作之间存在happensbefore关系,并不意味着Java平台的具体...
急需吃饭的小谢
0回复
3684浏览
Security
十个形象比喻,助你理解计算机面试必备的知识点
前言大家好,我是捡田螺的小男孩。计算机编程的很多知识点,往往在日常生活中就有类似的例子。最近整理了十个非常形象生动的生活例子,助大家理解这些计算机面试必备的知识点。1.如何理解HTTP的无状态?每次HTTP请求都是独立的,无相关的,默认不需要保存上下文信息的。我们来看个便于理解的例子:有状态:A:今天吃啥子?B:罗非鱼!A:味道怎么样呀?B:还不错,好香。无状态:A:今天吃啥子?B:罗非鱼!A:味道怎么样呀?B...
我欲只争朝夕
0回复
4845浏览
面试技巧
一道经典Java面试题:volatile的底层实现原理
前言大家好,我是捡田螺的小男孩。今天我们来探讨一道经典Java面试题:volatile的底层实现原理。如何向面试官表现你的基础不错呢?可以从这几个方面,全方位回答这个问题:volatile是什么?有什么作用现代计算机模型,MESI协议讲述JMM模型volatile不能保证原子性volatile是如何保证可见性的?volatile是如何保证指令重排的?1.volatile是什么?有什么作用volatile关键字是Java虚拟机提供的的最轻量级的同步机制。它作为一个修饰...
我欲只争朝夕
0回复
5679浏览
Java
惊呆了,spring中竟然有12种定义bean的方法
前言在庞大的java体系中,spring有着举足轻重的地位,它给每位开发者带来了极大的便利和惊喜。我们都知道spring是创建和管理bean的工厂,它提供了多种定义bean的方式,能够满足我们日常工作中的多种业务场景。那么问题来了,你知道spring中有哪些方式可以定义bean?我估计很多人会说出以下三种:没错,但我想说的是以上三种方式只是开胃小菜,实际上spring的功能远比你想象中更强大。各位看官如果不信,请继续往下看。1.xml文件...
我欲只争朝夕
0回复
7730浏览
spring
#冲刺创作新星#java内存模型之重排序
原创
java内存模型之重排序happensbefore在JMM中,如果一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须要存在happensbefore关系。这里提到的两个操作既可以是在一个线程之内,也可以是在不同线程之间。程序顺序规则:一个线程中的每个操作,happensbefore于该线程中的任意后续操作。监视器锁规则:对一个锁的解锁,happensbefore于随后对这个锁的加锁。volatile变量规则:对一个volatile域的写,happensbefore于任...
急需吃饭的小谢
0回复
3895浏览
Security
#冲刺创作新星#Java并发机制的底层实现原理
原创
Java并发机制的底层实现原理Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令。2.1volatile的应用在多线程并发编程中synchronized和volatile都扮演着重要的角色,volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个...
急需吃饭的小谢
0回复
4025浏览
Security
#冲刺创作新星#SpringSecurity认证流程分析
原创
SpringSecurity认证流程分析AuthenticationManagerAuthenticationManager是认证管理器它定义了SpringSecurity过滤器要如何执行认证操作。AuthenticationManager在认证后会返回一个Authentication对象,它是一个接口,默认实现类是ProviderManagerAuthenticationProviderAuthenticationProvider针对不同的身份类型执行具体的身份认证。DaoAuthenticationProvider用来支持用户名密码登录认证RememberMeAuthenticationProvider用来...
急需吃饭的小谢
0回复
5037浏览
Security
#冲刺创作新星#springsecurity 之 登录用户数据的获取
原创
springsecurity之登录用户数据的获取从当前请求对象中获取用户信息SpringMVC中Controller的请求参数都是当前请求HttpServletRequest带来的,AuthenticationPrincipal也是HttpServletRequest带来的,在Controller层我们拿到的是HttpServletRequest的实例是Servlet3SecurityContextHolderAwareRequestWrapperServlet3SecurityContextHolderAwareRequestWrapperServlet3SecurityContextHolderAwareRequestWrapper继承SecurityConte...
急需吃饭的小谢
0回复
5528浏览
Security
#冲刺创作新星#SecurityContextPersistenceFilter 过滤器链
原创
SecurityContextPersistenceFilterSecurityContextPersistenceFilter是Springsecurity链中第二道防线,位于WebAsyncManagerIntegrationFilter之后,作用是为了存储SecurityContext而设计的。SecurityContextPersistenceFilter主要做两件事:1.当请求到来时,从HttpSession中获取SecurityContext并存入SecurityContextHolder中,这样在同一个请求的后续处理过程中,通过SecurityContextHolder获取数据2.当一个请求处理完毕时,从...
急需吃饭的小谢
0回复
5265浏览
Security
Java日常开发的21个坑,你踩过几个?
前言最近看了极客时间的《Java业务开发常见错误100例》,再结合平时踩的一些代码坑,写写总结,希望对大家有帮助,感谢阅读1.六类典型空指针问题包装类型的空指针问题级联调用的空指针问题Equals方法左边的空指针问题ConcurrentHashMap这样的容器不支持Key和Value为null。集合,数组直接获取元素对象直接获取属性1.1包装类型的空指针问题publicclassNullPointTest{publicstaticvoidmain(String[]args)throwsInterruptedExceptio...
我欲只争朝夕
0回复
5844浏览
Java
10个经典又容易被人疏忽的JVM面试题
前言整理了10个经典又容易被疏忽的JVM面试题,谢谢阅读,大家加油哈github地址,感谢每颗star❝https:github.comwhx123JavaHome❞公众号:「捡田螺的小男孩」1.对象一定分配在堆中吗?有没有了解逃逸分析技术?「对象一定分配在堆中吗?」不一定的,JVM通过「逃逸分析」,那些逃不出方法的对象会在栈上分配。「什么是逃逸分析?」逃逸分析(EscapeAnalysis),是一种可以有效减少Java程序中同步负载和内存堆分配压力的跨...
我欲只争朝夕
0回复
5365浏览
JVM
spring中这些能升华代码的技巧,可能会让你爱不释手
一如何获取spring容器对象1.实现BeanFactoryAware接口ServicepublicclassPersonServiceimplementsBeanFactoryAware{privateBeanFactorybeanFactory;OverridepublicvoidsetBeanFactory(BeanFactorybeanFactory)throwsBeansException{this.beanFactorybeanFactory;}publicvoidadd(){Personperson(Person)beanFactory.getBean("person");}}实现BeanFactoryAware接口,然后重写setBeanFactory方法,就能从该方法...
我欲只争朝夕
0回复
5352浏览
spring
面试官:Java线程池了解?如果你还回答不好,那还不赶快收藏!
写在前面本文将根据面试中常被问到的Java线程池展开抽丝剥茧的解析,这个问题可以说是百分之百会在Java程序员面试中被问到,因为在工作中这个需求实在是太普遍了。Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。本文成文的思路将根据面试中问答的流程展开,读者完全可以将本文展开的知识点作为回答此问题的常规套路,如果你掌握本文所列出的知识点,那么就因这一个问题就...
我欲只争朝夕
0回复
4698浏览
Java
线程池
BlockingQueue浅析
大家好,我是小黑,一个在互联网苟且偷生的农民工。队列学过数据结构的同学应该都知道,队列是数据结构中一种特殊的线性表结构,和平时使用的List,Set这些数据结构相比有点特殊,它的特殊之处在于它只允许在队列的头部(Head)进行删除操作,在尾部(Tail)进行插入操作,这种方式的队列我们称之为先进先出队列(FIFO)。先进先出队列在JDK1.5中推出了队列这一数据结构的具体实现,接口Queue是对于队列的定义,并有一...
ywz888
0回复
6300浏览
BlockingQueue
#冲刺创作新星#linux入门指令
原创
文件管理命令df命令df命令描述:该命令检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。df命令语法:df[参数][目录或文件名]参数说明:参数说明a列出所有的文件系统,包括系统特有的proc等文件系统。k以KBytes为单位,返回各文件系统容量。m以MBytes为单位,返回各文件系统容量。h以GBytes、MBytes、KBytes为单位,返回各文件系统容量。H以M1000K取代M1024K的进位方式显...
炒香菇的书呆子
0回复
4021浏览
linux
聊一聊Java 泛型通配符
前言Java泛型(generics)是JDK5中引入的一个新特性,泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型带来的好处在没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错...
我欲只争朝夕
0回复
5901浏览
Java
双指针+归并排序!图解排序链表!
前言大家好,我是程序员田螺,今天我们来看一道很经典的leetcode真题:排序链表题目给你链表的头结点head,请将其按升序排列并返回排序后的链表。要求时间复杂度是O(nlogn)实例1:输入:head[4,2,1,3]输出:[1,2,3,4]实例2:输入:head[1,5,3,4,0]输出:[1,0,3,4,5]分析排序算法选定时间复杂度要求是O(nlogn),我们很容易想到快速排序,以及归并排序。我们先来回顾下快速排序,它的基本思想...
我欲只争朝夕
0回复
6012浏览
链表
暂无内容
1
28
29
30
31
32
33
34
35
36
80
精选
客服
订阅鸿蒙技术特刊,精选内容抢先看
微信扫码关注,即刻订阅