Java
文章平均质量分 51
HenryLee699
三人行,必有我师。
展开
-
【无标题】
OceanBase 数据库的 SQL 引擎采用队列模型,针对用户请求,如果可用线程全部被占用,则新的请求需要在请求队列中排队,直到某个线程完成当前请求。例如,对于二级索引,如果所需的投影列没有包括在索引列之中,则需要使用回表的机制访问主表,查询的代价会增加很多。查询优化过程依赖数据统计信息的准确性,OceanBase 数据库的优化器默认会在数据合并过程中收集一些统计信息,当用对数据进行了大量修改时,可能会导致统计信息落后于真实数据的特征,用户可以通过发起每日合并,主动更新统计信息。转载 2024-06-13 21:42:04 · 79 阅读 · 0 评论 -
使用OceanBase 的问题及解决方案
目前,我们还没有发挥出分布式数据库的特性,只能在单一节点进行运算,已经再进行表分区尝试,安装了ODC,实现分布式运算,加快查询速度。同时执行OCP上的备份尝试,实现数据自动备份。我们一路从OceanBase 3.1.4单机,转到OceanBase4.0集群,从OCP管控2节点集群,扩容至5节点集群,遇到了很多小问题,但大多数都已得到处理。体验很好,我们也欣然接受OceanBase给我们带来的便利。愿OceanBase越来越好,我们也会支持用户社区,拥抱开源。OceanBase 社区。转载 2024-06-13 21:35:33 · 401 阅读 · 0 评论 -
log4j的jar包版本冲突导致的NoSuchMethodError解决方案
引入操作Excel文件的poi这个jar包,版本5.2.2,报错:Exception in thread "main" java.lang.NoSuchMethodError: org.apache.logging.log4j.Logger.atDebug()Lorg/apache/logging/log4j/LogBuilder原创 2022-09-15 09:18:18 · 9247 阅读 · 2 评论 -
Java项目在Idea里开发遇到所有代码爆红的问题与解决方案
Java项目在Idea里开发遇到所有代码爆红的原因有很多情况,也有可能是自己挖坑的。我先列举几种吧,后续补充其他情况。原创 2022-09-09 10:00:41 · 22608 阅读 · 11 评论 -
多线程阻塞队列生产者-消费者代码样例实现
模拟运行一下多线程下一个队列的元素的新增、提取(删除)。新增元素方法offer(ele),队列满时时,不抛异常。提取且删除元素方法poll(),队列为空时,不抛异常。使用队列:ArrayBlockingQueue。我们简单以生产消费某个数字来展示。原创 2022-09-08 17:44:48 · 438 阅读 · 0 评论 -
大规模数据获取提升效率时,对Bitmap的应用探索
Bitmap的秘密https://kb.cnblogs.com/page/515258/作者:周海鹏来源:infoQ转载 2021-05-16 12:23:39 · 151 阅读 · 0 评论 -
JVM结构、GC工作机制详解
题外话:最近在应聘阿里2015暑期实习,感触颇多。机会总是留给有准备的人的,所以平常一定要注意知识的巩固和积累。知识的深度也要有一定的理解,不比别人知道的多,公司干嘛选你?关于JVM和GC,我相信学java的绝大部分人都听过,很多公司的面试官都爱问,一开始我也很头痛,问这么底层干什么,所以我每次面试也只是看看答案敷衍了事。最近面完阿里感觉真不能这样,知识不仅要知其然,还要知其所以然。其实弄懂了JV转载 2017-11-23 17:29:15 · 199 阅读 · 0 评论 -
Java 内存区域和GC机制
目录Java垃圾回收概况Java内存区域Java对象的访问方式Java内存分配机制Java GC机制垃圾收集器Java垃圾回收概况 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代 码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是转载 2017-11-23 17:24:56 · 331 阅读 · 0 评论 -
Java单元测试之JUnit篇
单元测试是编写测试代码,应该准确、快速地保证程序基本模块的正确性。好的单元测试的标准JUnit是Java单元测试框架,已经在Eclipse中默认安装。JUnit4JUnit4通过注解的方式来识别测试方法。目前支持的主要注解有:@BeforeClass 全局只会执行一次,而且是第一个运行@Before 在测试方法运行之前运行@Test 测试方法@After 在测试方法运行之后转载 2017-11-27 22:55:40 · 498 阅读 · 0 评论 -
深入理解JVM
每个Java开发者都知道Java字节码是执行在JRE((Java Runtime Environment Java运行时环境)上的。JRE中最重要的部分是Java虚拟机(JVM),JVM负责分析和执行Java字节码。Java开发人员并不需要去关心JVM是如何运行的。在没有深入理解JVM的情况下,许多开发者已经开发出了非常多的优秀的应用以及Java类库。不过,如果你了解JVM的话,你会更加了解Jav转载 2017-10-26 00:20:55 · 1602 阅读 · 0 评论 -
JVM启动参数详解(含调优)
java启动参数共分为三类;其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;本文主要描述标准参数部分,剩下的两个部分将会陆续推出;标准转载 2017-10-25 21:50:59 · 13215 阅读 · 2 评论 -
JVM内幕:Java虚拟机详解
这篇文章解释了Java 虚拟机(JVM)的内部架构。下图显示了遵守 Java SE 7 规范的典型的 JVM 核心内部组件。 上图显示的组件分两个章节解释。第一章讨论针对每个线程创建的组件,第二章节讨论了线程无关组件。线程JVM 系统线程每个线程相关的程序计数器栈本地栈栈限制栈帧局部变量数组操作数栈动态链接线程共享堆内存管理非堆内存即时编译方转载 2017-10-25 21:12:18 · 508 阅读 · 0 评论 -
JAVA闭包
一、闭包的定义。 有很多不同的人都对闭包过进行了定义,这里收集了一些。 # 是引用了自由变量的函数。这个函数通常被定义在另一个外部函数中,并且引用了外部函数中的变量。 -- wikipedia>> # 是一个可调用的对象,它记录了一些信息,这些信息来自于创建它的作用域。-- > # 是一个匿名的代码块,可以接受参数,并返回一个返回值,也可以引用和使用在它周围转载 2017-10-31 22:13:57 · 220 阅读 · 0 评论 -
OO设计原则 -- OO设计的原则及设计过程的全面总结
OO设计原则 -- OO设计的原则及设计过程的全面总结这部分增加一点自己的感想,OO设计原则下面讲述的很清晰;看完之后有点感想如果我们在实际开发当中能够把这些原则熟烂于心的话那我们的代码质量和个人能力会有很显著的提神。根据自己的实际经验看很多开发者在开发过程中很多基本的知识确实没有熟烂于心导致开发的时候只有基本的内容。我所在的项目就是代码接口各种乱,可读性和可维护性特别差;当然转载 2017-10-23 10:07:19 · 517 阅读 · 0 评论 -
java 原子量Atomic举例(AtomicReference )—— AtomicInteger、AtomicBoolean、AtomicLong
java并发库提供了很多原子类来支持并发访问的数据安全性,除了常用的AtomicInteger、AtomicBoolean、AtomicLong 外还有AtomicReference 用以支持对象的原子操作:AtomicReference 可以封装引用一个V实例,通过[java] view plain copy public final boolean compareAndSet(V e转载 2017-10-30 00:13:50 · 670 阅读 · 0 评论 -
mybatics 中调用mysql存储过程
说起mybatics 框架,身边的java开发工程师们基本上都是耳熟能详。 mybatics是apache的一个开源项目,前身为ibatics,2010年此项目由apache软件基金会迁移到了google code,mybatics的确是一款十分优秀的开源持久层框架,sql代码隔离封装、自动POJO映射、jdbc 动态sql———— mybatics的好处可以说出一箩筐,然而mybatics还有一转载 2017-10-10 18:15:47 · 533 阅读 · 0 评论 -
阿里巴巴十年Java架构师分享
1.源码分析专题详细介绍源码中所用到的经典设计思想,看看大牛是如何写代码的,提升技术审美、提高核心竞争力。帮助大家寻找分析源码的切入点,在思想上来一次巨大的升华。知其然,并知其所以然。把知识变成自己的2.分布式架构互联网时代,系统架构如何迎接高并发流量的挑战。而作为技术开发者,如何去应对技术变革带来的技能危机。基于传统架构到分布式架构演变过程所带来的技术变革进行全面深入讲解。在技术深度和技术广度上...转载 2018-03-11 15:26:39 · 223 阅读 · 0 评论 -
阿里架构师和你聊聊【系统架构】
黄勇,从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师。对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与项目实战经验,擅长敏捷开发模式。国内开源软件推动者之一,Smart Framework 开源框架创始人。热爱技术交流,乐于分享自己的工作经验。著有《架构探险——从零开始写 Java Web 框架》一书。我的十年技术之路和大家介绍下我目前所从事的工作。...转载 2018-03-11 17:40:14 · 1422 阅读 · 0 评论 -
让 Java 程序员更加高效的开发工具
一、常用开发工具作为一名 Java 程序开发人员,可选择的集成开发环境 IDE(Integrated Development Environment)非常多,这得益于 Java 是一门开源语言。有开源免费的;有商用收费的。如何选择一款适合自己的集成开发环境,亦或说选择一款符合自己项目开发需要的集成开发环境。选择得当能够使得开发工作事半功倍;否则事倍而功半。免费开源 EclipseEclipse 最...转载 2018-03-11 17:57:24 · 441 阅读 · 0 评论 -
如何应对HashMap线程不安全的问题?
1、使用Hashtable替代HashMap 当一个线程访问HashTable的同步方法时,其他线程如果也要访问同步方法,会被阻塞住。举个例子,当一个线程使用put方法时,另一个线程不但不可以使用put方法,连get方法都不可以。效率很低,所以都不会用。Hashtable内方法上使用了synchronized。2、类ConcurrentHashMap定义Map源码是:...原创 2019-06-12 23:02:35 · 4273 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模...转载 2019-06-12 21:45:00 · 315 阅读 · 0 评论 -
Java中transient关键字
Java中transient关键字1.只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。2.如果在实现了Serilizable接口的类中,对该类的某属性添加transient关键字,那么在序列化对象的时候,这个属性就不会被序列化。3.transient关键字只能修饰变量,而不能修饰方法和类。 Java的serialization提供了一种持久化对象实...转载 2019-06-12 21:24:59 · 237 阅读 · 0 评论 -
在java中String类为什么要设计成final?
大神链接:在java中String类为什么要设计成final? - 程序员 - 知乎我进行了重新排版,并且更换了其中的一个例子,让我们更好理解。 String很多实用的特性,比如说“不可变性”,是工程师精心设计的艺术品!艺术品易碎!用final就是拒绝继承,防止世界被熊孩子破坏,维护世界和平!1. 什么是不可变?String不可变很简单,如下图,给一个已有字符串"abcd"第二...转载 2018-12-24 11:31:10 · 211 阅读 · 0 评论 -
在java中String类为什么要设计成final?
大神链接:在java中String类为什么要设计成final? - 程序员 - 知乎我进行了重新排版,并且更换了其中的一个例子,让我们更好理解。String很多实用的特性,比如说“不可变性”,是工程师精心设计的艺术品!艺术品易碎!用final就是拒绝继承,防止世界被熊孩子破坏,维护世界和平!1. 什么是不可变?String不可变很简单,如下图,给一个已有字符串"abcd"第二次赋值成"a...转载 2018-12-24 11:28:03 · 205 阅读 · 0 评论 -
java DecimalFormat用法
DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。 DecimalFormat 包含一个模式 和一组符号 符号含义: 0 一个数字 # 一个数字,不包括 0 . 小数的分隔符的占位符 , 分组分隔符的占位符 ; 分隔格式。 - 缺省负数前缀。 % 乘以 100 和作为百分比显示 ? 乘以 10...转载 2018-12-20 16:28:00 · 1392 阅读 · 0 评论 -
复杂链表的复制
题目描述[html] view plain copy输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 题目解析这个题目主要的难点在于随机指向的这个节点如何去复制到另一个链表中去,那么,这里如果单纯的采用直接赋值拷贝的方式肯定是不可取...转载 2018-05-30 17:53:10 · 269 阅读 · 0 评论 -
Tomcat服务器集群搭建
Tomcat服务器集群与负载均衡一、前言在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量,所以就有点显得有 点力不从心了。另外一个常见的问题是会产生单点故障,如果该服务器坏掉,那么网站就立刻无法运作了。不论是因为要有较佳的扩充性还是容错能力,我们都会想 在一台以上的服务器...转载 2018-05-23 15:10:06 · 25245 阅读 · 0 评论 -
ssm 存储过程分页
分页存储过程:CREATE OR REPLACE PROCEDURE prc_query (p_tableName in varchar2, --表名 p_strWhere in varchar2, --查询条件 p_orderColumn in varchar转载 2017-10-10 18:20:06 · 435 阅读 · 0 评论 -
各版本JDK的新特性
1.51. 自动装箱与拆箱:2. 枚举(常用来设计单例模式)3. 静态导入4. 可变参数5. 内省(Introspector)是 Java语言对Bean类属性、事件的一种缺省处理方法。例如类A中有属性name,那我们可以通过getName,setName来得到其值或者设置新 的值。通过getName/setName来访问name属性,这就是默认的规则。Java中提供了一套A转载 2017-09-21 23:06:11 · 390 阅读 · 0 评论 -
深入理解java的finalize、GC、close()的优劣
目录 基本预备相关知识 对象的销毁过程 对象重生的例子 对象的finalize的执行顺序 何时及如何使用finalize 参考 基本预备相关知识 1 java的GC只负责内存相关的清理,所有其它资源的清理必须由程序员手工完成。要不然会引起资源泄露,有可能导致程序崩溃。 2 调用GC并不保证GC实际执行。 3 finalize抛出的未捕获异转载 2015-09-12 15:18:51 · 1760 阅读 · 0 评论 -
Java基础---集合框架三
2015-4-19一、Map集合1、Map接口概述 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 2、Map接口和Collection接口的不同 Map是双列的,Collection是单列的 Map的键唯一,Collection的子体系Set是唯一的原创 2015-04-19 23:14:32 · 225 阅读 · 0 评论 -
Java高新技术---线程
一、线程概述 1、进程:正在运行中的程序。 线程:就是进程中一个执行单元或执行情景或执行路径。负责进程中代码执行的控制单元。 多线程:一个进程中至少要有一个线程,当一个进程中有多个线程时,就是多线程。 多线程的好处:可以让多部分代码同时执行。 什么是同时执行呢? 其实是cpu在瞬间做着快速的切换完成的原创 2015-05-12 20:14:25 · 215 阅读 · 0 评论 -
Java基础---API常用类2(Arrays类的查找排序)
第十四讲API使用二(查找与排序)2015-4-12一、String类1、在一个字符串里截取一个特定的字符串 (1)定义字符串;(2)定义变量count,用来记录Java出现的次数 ;(3)在字符串中找“java”获取到位置int index = str.indexOf(“java”) 找到原创 2015-04-14 21:50:49 · 263 阅读 · 0 评论 -
API常用类1(String类)
第十三讲 API的使用(String类)2015-4-11一、API概述1、常用类 Object类/Scanner类String类/StringBuffer类/StringBuilder类 数组高级和Arrays类 基本类型包装类(Integer,Character)正则表达式(Pattern,Matcher)Math类/Random类/System类原创 2015-04-14 21:38:24 · 283 阅读 · 0 评论 -
Java基础---集合框架四(Map)
2015-4-19一、Map集合1、Map接口概述 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值2、Map接口和Collection接口的不同 Map是双列的,Collection是单列的 Map的键唯一,Collection的子体系Set是唯一的原创 2015-04-23 08:11:36 · 854 阅读 · 0 评论 -
Java基础---IO流二(File & IO流)
2015-4-22一、File(续)1、public File[]listFiles(FilenameFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器 的文件和目录案例:举例一:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件名称需求:输出 E原创 2015-04-22 23:30:47 · 241 阅读 · 0 评论 -
Java基础---IO流一(Exception & File)
2015-4-20一、异常1、概述IO流 |-- 异常 |-- File |-- 递归 |-- 字节流 |-- 转换流 |-- 字符流 |-- 其他流异常:异常就是Java程序在运行过程中出现的错误。异常由来:问题也是现实生活中一个具体事务,也可以通过java 的类的形式进行描述,并封装成对象。原创 2015-04-20 22:42:40 · 261 阅读 · 0 评论 -
Java基础---集合框架二(ArrayList & 接口)
2015-4-16一、List集合1、List集合特有方法特有方法: voidadd(int index, E element) : 在当前集合中指定位置 添加给定的元素 Objectget(int index) 返回集合中指定位置的元素。 intindexOf(Object o)返回此集合中第一次出现的指定元素的原创 2015-04-24 13:20:35 · 560 阅读 · 0 评论 -
Java基础---IO流三(字节流& 字符流)
2015-04-23一、转换流(IO流续)1、编码表概述 由字符及其对应的数值组成的一张表编码把看得懂的变成看不懂的解码把看不懂的变成看得懂的常见的编码表 ASCII:用7位来表示一个数据 ISO-8859-1:在西欧使用,用8位来表示一个数据 GB2312:简体中文,使用2字节来表示一个汉字 GBK:简体中文原创 2015-04-24 18:20:05 · 637 阅读 · 0 评论 -
Java高新技术---反射&动态代理
android培训、 java培训、期待与您交流! 2015-04-27一、反射1、概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属 性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 要原创 2015-05-12 19:48:40 · 548 阅读 · 0 评论