
java
xmfsamsara
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Could not find the main class: org.eclipse.ant.internal.launching.remote.InternalAntRunner
最近使用build.xml.出现Could not find the main class: org.eclipse.ant.internal.launching.remote.InternalAntRunner的错误。确定自己的jre没有问题,只需要右键build.xml Run as → External tools configuration… → JRE选择run in the原创 2017-10-31 14:34:15 · 1679 阅读 · 0 评论 -
java动态代理 jdk实现源码原理
动态代理,这个词在Java的世界里面经常被提起,尤其是对于部分(这里强调“部分”二字,因为有做了一两年就成大神的,实力强的令人发指,这类人无疑是非常懂动态代理这点小伎俩的)做了一两年新人来说,总是摸不清楚来龙去脉,一两年是个坎,为什么是一两年,才入门的新人可能对这东西没什么感觉,没到这一步,做了很久开发的人显然是明白这其中原理的,而做了一两年的,知其然而不知其所以然,所以一两年工作经验的人很多是很...转载 2018-05-14 18:32:42 · 156 阅读 · 0 评论 -
String的intern()方法
今天在看一本书的时候注意到一个String的intern()方法,平常没用过,只是见过这个方法,也没去仔细看过这个方法。所以今天看了一下。个人觉得给String类中加入这个方法可能是为了提升一点点性能,因为从常量池取数据比从堆里面去数据要快一些。(个人感觉) API上的那几句关于这个方法,其实总结一句就是调用这个方法之后把字符串对象加入常量池中,常量池我们都知道他是存在于方法区的,他是方法区的一...转载 2018-05-14 18:39:05 · 226 阅读 · 0 评论 -
transient关键字
原创地址:https://www.cnblogs.com/lanxuezaipiao/p/3369962.html 哎,虽然自己最熟的是Java,但很多Java基础知识都不知道,比如transient关键字以前都没用到过,所以不知道它的作用是什么,今天做笔试题时发现有一题是关于这个的,于是花个时间整理下transient关键字的使用,涨下姿势~~~好了,废话不多说,下面开始:1. transien...转载 2018-05-21 14:37:24 · 150 阅读 · 0 评论 -
fail-fast 和 fail-safe
一:快速失败(fail—fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concurrent Modification Exception。 原理:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量。集合在被遍历期间如果内容发生变化,就...原创 2018-05-08 14:53:21 · 146 阅读 · 0 评论 -
Volatile
Java中Volatile关键字详解阅读目录一、基本概念二、Volatile原理一、基本概念先补充一下概念:Java 内存模型中的可见性、原子性和有序性。可见性: 可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制。 可见性,是指...转载 2018-05-08 17:00:18 · 359 阅读 · 0 评论 -
bootstrap-table 不对齐
由于列数太多,bootstrap-table 不对齐的 表头和内容列 没有对齐, 只要删除bootstrap-table data-height这个属性 就对齐了原创 2018-09-17 20:19:48 · 1940 阅读 · 0 评论 -
事务开启回滚失败问题记录
1.同层调用原因:spring开始以切面开启事务,同层方法无效2.事务指定范围 public必须为public private 开启切面 是继承不到的 而且 不是public 开启事务 源码中有判断 必须是public3.异常捕获@Transational 指定捕获异常 (rollbackFor = Exception.class)否则只有 运行时异常才会回滚 ...原创 2019-02-21 11:11:39 · 920 阅读 · 0 评论 -
线上问题排查
考验一个人是不是真的具备实操能力,有几个发散性的问题一问便能识别是不是个水货:系统抖动了一下你会怎么办?监控图上有一个偶发性的长尾你联想到了什么?怎么处理?系统突然运行缓慢了怎么办?这些问题都需要长期的工作积累、思考和总结才能很好的解答出来。处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。当然,这些问题的最终导致的直观现象就是系统运行缓慢...原创 2019-09-25 08:56:23 · 334 阅读 · 0 评论 -
"=="、equals和hashCode有什么区别
1)“==”运算符用来比较两个变量的值是否相等。也就是说,该运算符用于比较变量对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能使用“==”运算符。具体而言,如果两个变量是基本数据类型,可以直接使用“==”运算符来比较其对应的值是否相等。如果一个变量指向的数据是对象(引用类型),那么,此时涉及了两块内存,对象本身占用了一块内存(堆内存),变量也占用一块内存,例如...转载 2018-05-13 10:24:29 · 185 阅读 · 0 评论 -
强、弱、软、虚引用
首先要知道,一个java对象在堆内存中运行时,它的状态可以分成三种: 1.可达状态:有一个引用变量引用它。 2.可恢复状态:此时不再有引用变量引用它,系统的垃圾回收机制准备回收该对象随占用的资源。在回收对象之前,系统会调用该对象的finalize方法进行资源清理,如果finalize方法重新让一个以上的引用变量引用该对象,则这个对象会再次变为可达状态。 3.不可达状态:当对象所有...原创 2018-05-06 18:52:11 · 166 阅读 · 0 评论 -
final
final是一个比较简单的修饰符。final 可以修饰变量,被final修饰的变量被赋初始值后,不能对它重新进行赋值。final 可以修饰方法,被修饰不能重写。final 可以修饰类,被修饰不能派生。全是口诀。final变量必须被显式的初始化。 当一个使用final修饰的变量,如果定义该变量时就指定了初始值,而这个初始值就可以在编译时就确定下来。(个人理解就是不需要等到构造器中再进行赋值,直...原创 2018-04-14 19:18:11 · 796 阅读 · 0 评论 -
super
a extends b;b extends c;在创建a的对象后,可访问 b和c的对象。 但其实在系统内存中并不存在 b 和c对象。 a对象不仅仅保存了a类中定义的所有实例变量,还保存了它所有父类所定义的全部实例变量。java程序中允许某个方法通过return this;返回调用该方法的java对象,子类super调用父类方法,返回this,为子类对象.但不允许直接使用return supe...原创 2018-04-14 19:52:08 · 290 阅读 · 0 评论 -
数组
1.数组的初始化数组可以通过静态初始化和动态初始化。什么是数组初始化————当数组的所有元素都被分配了合适的内存空间,并指定了初始值,数组初始化完成程序之后不能重新改变数组对象在内存中的大小和位置。默认初始化值为int long short byte的值为0float double 为0.0boolean 为 false引用类型数组元素值为null数组变量是一种引用类型的变量,数组变量并不是数组本...原创 2018-04-13 20:31:07 · 154 阅读 · 0 评论 -
static
static 的作用是将实例成员变为类成员。包括 变量 方法 内部类 初始化块 1.类成员在实例成员初始化,类变量会随着类的初始化而初始化。实例变量随着对象的初始化而初始化,而对象初始化前必须对类进行初始化。2.在jvm中每一个类对应一个class对象,因此同一个jvm内的一个类的类变量只需要一块内存。而实例变量,该类每创建一次实例都要分配一块内存空间。3.每一个类其实也是Class的实例,可以通...原创 2018-04-13 22:52:30 · 138 阅读 · 0 评论 -
父类构造器
在创建java对象时,程序会依次调用每个父类的非静态初始化块、构造器。然后才调用本类的非静态初始化块。显示调用与隐式调用上诉第一个调用方式为隐式调用,而父类的静态初始化块总会被执行,接着会调用父类的一个或多个构造器执行初始化,这个调用既可以是隐式的也可以是显示调用,通过super();1.子类构造器执行体内第一行代码使用super显式调用父类构造器,系统根据传入的参数列表决定调用父类的哪个构造器。...原创 2018-04-13 23:23:00 · 364 阅读 · 0 评论 -
变量的编译与运行时类型不同
当子类隐式调用了父类构造器方法时,父类构造器中的this代表子类对象,但是又在父类中进行编译。当变量的编译与运行时类型不同时,通过该变量访问它引用的对象实例变量时,该实例变量由声明该变量的类型决定。及this.i 中i代表的是父类的成员,而通过该变量调用它引用的对象实例方法时,该方法行为将由它实际所引用的对象来决定。this.func()。func是子类的方法。此时父类调用了子类的方法当子类重写父...原创 2018-04-13 23:37:26 · 311 阅读 · 0 评论 -
继承
子类可以继承父类的成员变量和方法,但是之间是有区别的。Derived extends Base;Base b=new Derived();此时因为将Derived的对象赋给了Base变量,系统会自动向上转型来保证程序的正确。此时,通过b来访问实例变量时输出的是Base(声明时类型)对象的实例变量值,如果调用方法,则调用的是Derived(运行时类型)对象的行为。如果Derived d = new ...原创 2018-04-14 10:25:44 · 214 阅读 · 0 评论 -
String源码 spilt
public String[] split(String regex, int limit) { return Pattern.compile(regex).split(this, limit); } public String[] split(String regex) { return split(regex, 0); } ...原创 2018-05-17 18:16:20 · 201 阅读 · 0 评论 -
jvm 参数
-Xms是指设定程序启动时占用内存大小。一般来讲,大点,程序会启动的快一点,但是也可能会导致机器暂时间变慢。-Xmx是指设定程序运行期间最大可占用的内存大小。如果程序运行需要占用更多的内存,超出了这个设置值,就会抛出OutOfMemory异常。-Xmn-Xss 设置每个线程的堆栈大小-Xdebug是通知JVM工作在DEBUG模式下-Xrunjdwp 是通知JVM使...原创 2019-09-25 09:01:13 · 220 阅读 · 0 评论