Java反射
一 Java安全可以从反序列化漏洞开始说起,反序列化漏洞⼜可以从反射开始说起 正是反射使得Java拥有了动态特性,对象可以通过反射获取他的类,类可以通过反射拿到所有⽅法(包括私有),拿到的⽅法可以调⽤,总之通过“反射”,我们可以将Java这种静态语⾔附加上动态特性 PHP本身拥有很多动态特性,所以可 ...
微服务框架:如果不用 Spring Boot,还可以选择谁?
前言 在 Java 和 Kotlin 中, 除了使用Spring Boot创建微服务外,还有很多其他的替代方案。 | 名称 | 开发商 | | : : | : : | | Helidon SE | 甲骨文 | | Ktor | JetBrains | | Micronaut | Object Com ...
Java多线程(7):JUC(下)
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 除了四种常见的同步器(发令枪、摇号器、栅栏和交换机),JUC还有所谓线程安全的容器、阻塞队列和一些特殊的类。其中常出现的就是线程安全的容器和阻塞队列。与其说这是两个大的分类,还不如说它就是两个用得最多的类:ConcurrentHashMap和A ...
Java多线程(7):JUC(上)
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 前面把线程相关的生命周期、关键字、线程池(ThreadPool)、ThreadLocal、CAS、锁和AQS都讲完了,现在就剩下怎么来用多线程了。而要想用好多线程,其实是可以取一些巧的,比如JUC(好多面试官喜欢问的JUC,就是现在要讲的JUC ...
设计模式
单例模式 所谓单例模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法) 饿汉式(静态常量) 构造器私有化 类的内部创建对象 向外暴露一个静态的公共方法 /** * 饿汉式(静态常量) */ public class Sing ...
C++对象模型:g++的实现(四)
这篇博客开始总结《深度探索C++对象模型》的第四章,即C++中成员函数(除了构造函数和析构函数)相关的内容。只是简单介绍了C++类中的成员函数,包括常规成员函数、虚函数、静态函数。 ...
深度剖析Java的volatile实现原理,再也不怕面试官问了
上篇文章我们讲了synchronized的用法和实现原理,我们总爱说synchronized是重量级锁,volatile是轻量级锁。为什么volatile是轻量级锁,体现在哪些方面?以及volatile的作用和实现原理是怎样的?本篇带你一块学习一下。 ...
腾讯员工晒出薪资:真实 985 毕业薪资,大家看我还有救吗??
来源:程序员求职面试(ID:CoderJob) 敢晒薪资的程序员大多情况下薪资水平应该都是挺不错的,虽然互联网薪资比其他行业稍微高一些,但也存在普通薪资的情况。 前段时间,有认证为腾讯员工的网友发帖称:真实985毕业薪资,大家看我还有救吗?原贴如下: 这个帖子一经发出,引起了不少网友的讨论。不少网友 ...
Java多线程(6):锁与AQS(下)
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 之前说过,AQS(抽象队列同步器)是Java锁机制的底层实现。既然它这么优秀,是骡子是马,就拉出来溜溜吧。 首先用重入锁来实现简单的累加,就像这样: /** * 用重入锁实现累加 * * @author 湘王 */ public class M ...
什么是JAVA内存模型
前言 在并发编程中,当多个线程同时访问同一个共享的可变变量时,会产生不确定的结果,所以要编写线程安全的代码,其本质上是对这些可变的共享变量的访问操作进行管理。导致这种不确定结果的原因就是可见性、有序性和原子性问题,Java 为解决可见性和有序性问题引入了 Java 内存模型,使用互斥方案(其核心实现 ...
对于HashMap的容量的一些分析
在Java开发中,我们经常会像如下方式以下创建一个HashMap: Map<String, String> map = new HashMap<String, String>(); 但是上面的代码中,我们并没有给HashMap指定容量,那么,这时候一个新创建的HashMap的默认容量是多少呢?为什么 ...
Java多线程(6):锁与AQS(中)
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ Java中的AQS(AbstractQueuedSynchronizer,抽象队列同步器)是用来实现锁及其他同步功能组件的Java底层技术基础,java.util.concurrent包下大部分类的实现都离不开它。 通过继承AQS: 1、Ree ...