Java
文章平均质量分 76
樱木的梦呓
Debug the universe, debug the world.
展开
-
应用服务OkHttpClient创建大量对外连接时内存溢出
文章目录1 背景2 排查2.1 原因2.2 验证过程2.2.1 修改前2.2.2 修改后3 解决1 背景最近工作中碰到一个生产问题,就是应用服务在使用 OkHttpClient 时,在创建大量对外连接时线程堆积导致内存溢出。主要表现是在流量极低的情况下,即平均 qps 在 1~4 左右的情况下,各主要线程都很低,但是系统活跃线程却很高,超过了限制的阈值,如果持续下去,线程堆积过高则会导致应用程序直接挂掉。2 排查2.1 原因在对应用服务的其中一个 pod 的线程栈 du原创 2020-10-17 10:57:16 · 3496 阅读 · 0 评论 -
ARTS 第四周
ARTS是什么?Algorithm:每周至少做一个leetcode的算法题;Review:阅读并点评至少一篇英文技术文章;Tip/Techni:学习至少一个技术技巧;Share:分享一篇有观点和思考的技术文章。原创 2018-12-02 18:36:11 · 289 阅读 · 0 评论 -
ARTS 第五周
文章目录ARTS是什么?AlgorithmReviewTip/TechniShareARTS是什么?Algorithm:每周至少做一个leetcode的算法题;Review:阅读并点评至少一篇英文技术文章;Tip/Techni:学习至少一个技术技巧;Share:分享一篇有观点和思考的技术文章。Algorithm230. Kth Smallest Element in a BST...原创 2018-12-13 00:02:58 · 251 阅读 · 0 评论 -
ARTS 第六周
文章目录ARTS是什么?AlgorithmReviewTip/TechniShareARTS是什么?Algorithm:每周至少做一个leetcode的算法题;Review:阅读并点评至少一篇英文技术文章;Tip/Techni:学习至少一个技术技巧;Share:分享一篇有观点和思考的技术文章。Algorithm744. Find Smallest Letter Greater ...原创 2018-12-18 00:19:16 · 438 阅读 · 0 评论 -
Spring AOP 是什么?
文章目录什么是面向切面编程使用 AOP 简化代码AOP 如何大规模运作横切关注点什么是 Spring AOP?总结虽然 AOP 不经常被讨论,但是它在 Spring 中有着广泛的应用。对你来说,也许是时候去熟悉 AOP 并让它为你所用了。你了解 Spring AOP 吗?你有在你目前的 Spring Boot 项目中使用它吗?如果没有,这篇文章就是为你准备的!最近,我看到很多项目都在使用 ...翻译 2019-03-23 19:53:53 · 10360 阅读 · 0 评论 -
Spring AOP 历险记(一)
文章目录AOP 是什么Spring AOP 是什么Spring AOP 的主要术语Spring AOP 其他常用的术语Spring AOP 的优点Spring AOP 的缺点建言(advice)的类型AOP 代理(proxy)Spring AOP 示例AOP 是什么在学习 Spring AOP 之前,我们先来了解一下 AOP。我们都听过面向对象编程(OOP),那么 AOP 到底是什么呢?中文...原创 2019-03-24 02:19:38 · 1713 阅读 · 0 评论 -
Spring AOP 历险记(二)之动态代理初探
Spring AOP 动态代理、JDK 动态代理与 CGLIB 动态代理的区别、AspectJ 静态代理原创 2019-03-31 23:57:46 · 473 阅读 · 0 评论 -
System.out.println()默认调用类中的 toString()方法源码解析
最近在看《Java编程思想》,看到第七章复用类那里的时候,发现 new 了对象之后调用 System.out.println() 打印对象的时候,如果对象不为 null 根本不用显式地调用类的 toString() 方法,还是会默认调用类的 toString() 方法。于是带着好奇心看了下 PrintStream 的 println() 方法的源码,果然发现,源码之中一切尽显。书中具体代码如下:...原创 2019-06-02 22:31:31 · 2301 阅读 · 0 评论 -
趣谈Java之——与对象的初次约会
文章目录前言一、前世今生1、Java 是什么2、Java 有什么特点3、Java 的应用二、面向对象 VS 面向过程三、面向对象编程思想四、面向对象的基本特征五、Java 与面向对象六、为什么要使用面向对象编程写在最后阅读文本大概需要 6.66 分钟。前言大家好,这是首发于公众号「蜗牛永动机」的趣谈 Java 系列教程。学习一门语言最好的办法,就是教会别人。在这个公众号,我会从最基...原创 2019-06-30 23:30:10 · 333 阅读 · 0 评论 -
趣谈Java之 ——UML中类(对象)之间的几种关系
文章目录前言1 简单了解 UML 中的类图结构2 UML 中类之间的关系概述3 类(对象)之间的关系详解3.1 一般—>特殊关系3.1.1 继承关系(generalization)3.1.2 实现关系(generalization)3.2 整体—>部分关系3.2.1 关联关系(association)3.2.2 依赖关系(dependency)3.2.3 聚合关系(Aggregatio...原创 2019-07-01 00:01:17 · 2880 阅读 · 0 评论 -
趣谈Java之——三分钟搞懂基础语法
文章目录前言一、标识符定义Java 标识符命名规则一些合法和非法的标识符示例二、关键字三、Java 常量和变量常量变量变量的分类四、Java 数据类型数据类型详解1 布尔型-boolean2 字符型-char3 整数类型-byte、short、int、long4 浮点类型-float、double数据类型转换五、运算符1 逻辑运算符2 字符串连接符3 赋值运算符4 算术运算符(自增和自减运算符)5...原创 2019-07-01 00:45:13 · 899 阅读 · 0 评论 -
踩坑——IntelliJ idea 打包本地配置文件与配置中心(Apollo)文件冲突问题以及无法运行 Gradle 项目问题的解决办法
前言IntelliJ idea 打包时由于注释掉 build.gradle 中的一些相关配置,会导致打包的时候将本地的配置文件包含到 jar 包中,当部署的时候会优先读取 jar 包中的配置文件,然后才会读取配置中心中的配置文件。从而会使得配置中心中新增的配置无法读取,因为会与 jar 包中的配置文件发生冲突。eclipse 则不同,eclipse 打包的时候无需管 build.gradle 中...原创 2019-07-27 11:08:21 · 1869 阅读 · 0 评论 -
ARTS 第三周
ARTS是什么?Algorithm:每周至少做一个leetcode的算法题;Review:阅读并点评至少一篇英文技术文章;Tip/Techni:学习至少一个技术技巧;Share:分享一篇有观点和思考的技术文章。Algorithm876. Middle of the Linked ListGiven a non-empty, singly linked list with he...原创 2018-11-25 21:14:41 · 368 阅读 · 0 评论 -
ARTS 第二周
ARTS是什么?Algorithm:每周至少做一个leetcode的算法题;Review:阅读并点评至少一篇英文技术文章;Tip/Techni:学习至少一个技术技巧;Share:分享一篇有观点和思考的技术文章。Algorithm876. Middle of the Linked ListGiven a non-empty, singly linked list with he...原创 2018-11-18 00:50:55 · 303 阅读 · 0 评论 -
深入理解 Java 的三大特性之多态
面向对象编程有三大特性:封装、继承、多态。Java实现多态有三个必要条件:继承、重写、向上转型(父类引用指向子类对象)。原创 2018-11-12 19:37:38 · 276 阅读 · 0 评论 -
抽象类和接口的异同、区别
Java中抽象类和接口的区别抽象类和接口的定义 抽象类:关键字abstract修修饰的类称为抽象类,抽象类是一种没有完全实现的类,它的主要用途是描述一些概念性的内容,然后在子类中具体去实现这些概念。 接口:接口是抽象类的一种变体,接口用关键字interface来定义。抽象类和接口的区别 1、抽象类中的方法可以为抽象的,也可以为非抽象的,如果一个类包含抽象方法,则必须定义为抽象类;而接口中的所有原创 2017-10-16 15:31:16 · 543 阅读 · 0 评论 -
『剑指 offer 学习笔记』「面试题 3:二维数组中的查找」
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 /** * 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序, * 每一列都按照从上到下递增的顺序排序。 * 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含...原创 2018-03-30 23:46:56 · 288 阅读 · 0 评论 -
structs 中 struts-tags 引入struts 标签库
转载至:https://blog.csdn.net/wuha0/article/details/7405886 这一句<%@ taglib prefix=”s” uri=”/struts-tags” %>就是从地址/struts-tags下面寻找标签库,可能有人会好奇这个地址在哪里呢?答案是它定义在Struts 2库文件struts2-core-2.0.11.jar里面的文件ME...转载 2018-04-15 00:27:50 · 5687 阅读 · 0 评论 -
LeetCode题解(Java实现)——27. Remove Element(删除数组中指定元素)
「27. Remove Element(删除数组中指定元素)」 Question: Given an array and a value, remove all instances of that value in place and return the new length. The order of elements can be changed. It doesn’t ma...原创 2018-04-06 02:02:17 · 1011 阅读 · 0 评论 -
Java 攻城狮学习线路图
图1 Java攻城狮学习线路图01 轻轻的 轻轻的我走了 正如我轻轻的来一切都是那么的轻一切都是那么的自然时光荏苒,来也匆匆,去也匆匆一眨眼,已不再是学校温室里的巨婴一不留神,已以小学生身份进入社会这个大学堂半月有余 02学校里学习的东西和进入社会所学的东西是有一定出入的。在学校里的学习主要是一个引导,学的面很广、很杂,而工作中则需要学会主动学习...原创 2018-07-25 12:33:40 · 593 阅读 · 0 评论 -
Java 便利贴之泛型
为什么要使用泛型?泛型是什么?怎么用?原创 2018-10-06 16:19:42 · 352 阅读 · 0 评论 -
优雅性感之 JSON 小姐姐
阅读文本大概需要 3.0 分钟。我们都知道,在实际项目的开发中肯定是少不了要与优雅的 JSON 小姐姐打交道的,想要完全与这么优雅漂亮又性感大方的 JSON 小姐姐擦肩而过,这是不存在的。因为最近也一直在跟 JSON 小姐姐打交道,深深被小姐姐的优雅所吸引,所以特此做个总结。1、什么是 JSON定义JSON 是一种与开发语言无关的、轻量级的数据格式。全称是 JavaScript ...原创 2018-10-18 23:24:02 · 1052 阅读 · 0 评论 -
ARTS 第一周
ARTS是什么?Algorithm:每周至少做一个leetcode的算法题;Review:阅读并点评至少一篇英文技术文章;Tip/Techni:学习至少一个技术技巧;Share:分享一篇有观点和思考的技术文章。Algorithm26. Remove Duplicates from Sorted ArrayGiven a sorted array nums, remove t...原创 2018-11-12 01:11:38 · 489 阅读 · 0 评论 -
Java多线程的一些简单概念
1、线程是一个程序内部的顺序控制流; 2、线程与进程的区别: (1)每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大开销; (2)线程可看成轻量级进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小; (3)多进程:在操作系统中能同时运行多个任务(程序); (4)多线程:在同一应用程序中有多个控制流同时执行; 3、java线原创 2017-04-18 17:45:08 · 349 阅读 · 0 评论