首页 文章 精选 留言 我的

精选列表

搜索[java],共10000篇文章
优秀的个人博客,低调大师

浅谈Java多线程与并发原理

前序 线程安全问题的主要诱因 存在共享数据(也称临界资源) 存在多条线程共同操作这些共享数据 解决方法:同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再对共享数据进行操作 互斥锁的特征 互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程协调机制,这样在同一时间只有一个线程对需要同步的代码块(复合操作)进行访问。互斥性也称为操作的原子性。可见性:必须确保在锁被释放之前,对共享变量所做的修改,对于随后获得该锁的另一个线程是可见的(即在获得锁时应该获得最新共享变量的值),否则另一个线程可能是在本地缓存的某个副本上继续操作,从而引起不一致。注:synchronized 锁的不是代码,锁的是对象 获取锁的分类:获取对象锁、获取类锁 获取对象锁的两种用法: 同步代码块(synchronized(this),s

优秀的个人博客,低调大师

突破Java面试(46)-分库分表

0 Github 1 面试题 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的? 2 分析 其实这块肯定是扯到高并发了,因为分库分表一定是为了支撑高并发、数据量大两个问题的。而且现在说实话,尤其是互联网类的公司面试,基本上都会来这么一下,分库分表如此普遍的技术问题,不问实在是不行,而如果你不知道那也实在是说不过去! 3 业务分析 说白了,分库分表是两回事儿,大家可别搞混了,可能是光分库不分表,也可能是光分表不分库,都有可能。我先给大家抛出来一个场景。 业务发展迅猛,注册用户数达到了2000万!每天活跃用户数100万!每天单表数据量10万条!高峰期每秒最大请求达到1000!感觉压力已经有点大了,为啥呢?因为每天多10

优秀的个人博客,低调大师

Java 内部类创建、调用外部方法

JDK 1.8.0 创建内部类类对象 Outer outer = new Outer(1L,"fater"); Outer.Inner inner = outer.new Inner(2L,"son"); 内部类对象调用外部类方法 内部类与外部类没有重名的方法,可以直接调用外部类方法 内部类与外部类存在重名的方法,必须使用 Outer.this.method() 来进行调用,否则优先调用内部类的方法 public class Outer { private Long id; private String name; public Outer(Long id, String name) { this.id = id; this.name = name; } public void test(){ System.out.println("Outer "+this.id+"--"+this.name); } class Inner{ private Long id; private String name; public Inner(Long id, String name) { this.id = id; this.name = name; } // public void test(){ // System.out.println("Inner "+this.id+"--"+this.name); // System.out.println("my fater is"); // //test(); // 会调用内部类的test()方法,无限循环报错 // Outer.this.test();// 调用外部类方法 // } public void test2(){ System.out.println("Inner "+this.id+"--"+this.name); System.out.println("my fater is"); Outer.this.test(); //test(); // 两种方式皆可,调用外部类方法 } } public static void main(String[] args) { Outer outer = new Outer(1L,"fater"); Outer.Inner inner = outer.new Inner(2L,"son"); inner.test2(); } }

优秀的个人博客,低调大师

java使用阿里oss和短信功能

提供阿里oss和短信功能 一、导入依赖 <dependency> <groupId>cn.gjing</groupId> <artifactId>tools-ali</artifactId> <version>1.1,0</version> </dependency> 二、项目使用 1、阿里OSS: 文件简单上传(最大文件不能超过5G)上传成功后返回图片地址,失败会返回错误信息,后续根据返回结果自行处理; @PostMapping("/upload") @ApiOperation(value = "上传图片", httpMethod = "POST") public ResponseEntity testUpload(

优秀的个人博客,低调大师

突破Java面试(20)-Redis线程模型

1 面试题 redis和memcached有什么区别?redis的线程模型是什么?为什么单线程的redis比多线程的memcached效率要高得多(为什么redis是单线程的但是还可以支撑高并发)? 2 考点分析 这个是问redis的时候,最基本的问题,redis最基本的一个内部原理和特点,就是redis实际上是个单线程工作模型,你要是这个都不知道,那后面玩儿redis的时候,出了问题岂不是什么都不知道? 还有可能面试官会问问你redis和memcached的区别,不过说实话,最近这两年,作为面试官都不太喜欢这么问了,memched是早些年各大互联网公司常用的缓存方案,但是现在近几年基本都是redis,没什么公司用memcached了 额外的友情提示同学,你要是现在还不知道redis和memcached是啥?那你赶紧百度一下redis入门和

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册