- 博客(18)
- 收藏
- 关注
原创 Java堆内存解析
堆内存标记释放标记/* 堆中内存块空闲标记 @beg 起始地址 @end 结束地址 */void CodeHeap::mark_segmap_as_free(size_t beg, size_t end) { assert(0 <= beg && beg < _number_of_committed_segments, "interval begin out of bounds"); assert(beg < end &a
2020-05-14 23:43:23
175
原创 不加锁情况下线程资源抢占临界条件分析
在进行多线程买票的试验中,在不使用同步锁的情况下call()方法定义了如下: int i = 0; @Override public Integer call() throws Exception { int cnt=0; // TODO Auto-generated method stub for (; i < 50; i++) { System.out...
2019-01-21 19:58:40
293
原创 同步锁的理解
不添加同步锁,当两个(多个)线程共同使用一个共享资源时,会出现资源的抢占,对于每个进程而言,抢占某个特定的资源,所获得的结果是不确定的。如下:保持代码不变,再次运行:加上同步锁之后,某段时间内只有一个进程会获得资源,其他进程处于等待状态,直到这个进程执行完毕。下个进程才会开始执行:再次执行,证明其稳定性: 以上,同步锁可以保证进程获取资源的稳定性,维护了进程的安...
2019-01-16 11:56:08
2138
原创 IO流read方法的使用
read方法一旦调用就一定会从输入流取数据,不论是否含有参数。因此如果要容纳上一次读取的内容,就一定需要一个相同类型的变量来承接读取出来的数据。否则多次调用后的read数据将早不是原来的数据了。当调用无参方法时,此时从数据流中取得一个数据,这种做法不利于数据量大的情况下、当调用有参方法时,此时传入的是一个相应类型的数组,此时read方法返回的是得到数组的数组的实际长度(即:当数组长度小...
2019-01-12 17:59:16
1722
原创 IO流初学
1输出流反向输出结果分析://反向输出顺序FileOutStream out=new FileOutputStream(file,false);//正向输出顺序FileOutStream out=new FileOutputStream(file,true);如图为正向,反向输出的语句:当为true时正向顺序输出,如同正常写字方向相同,后边书写的在后边补上。称之为写入。当为...
2019-01-11 20:57:58
143
1
原创 StringBuffer扩容原理
通过实验发现一个问题:当建立一个StringBuffer对象的时候,默认的容量为16。通过构造器中添加字符串,构造器执行完毕后,得出的容量值为16+n。这时候通过append()方法添加元素,当元素总和(length)小于等于16+n时,容量值始终保持在16+n。当元素总和为17+n的时候,容量值突然增加到2(16+n)+2.现从源码的角度上对其进行分析:这是一段短语新容量计算...
2019-01-07 22:06:21
2068
原创 父类类型引用指向子类对象
.动态绑定的概念:父类类型引用指向子类对象,调用的是子类方法,子类类型引用指向子类对象,调用的是子类的方法。那么在父类类型引用指向子类对象的情况下,调用子类特有方法会怎样呢?答案是会报错。如上图所示in1,in3分别父类类型引用指向类自身与子类对象,in3所属的类(接口)继承与in1所属的类show_3()是in3对象所属类(接口)的独有方法:根据实验得出的结果...
2019-01-07 20:24:54
980
原创 super关键字的使用
1.super关键字访问上一级的方法:在父类定义eat(),sleep()方法在子类定义一个方法,使用super关键字来访问public void show(){ super.eat(): super.sleep(); }输出结果如下:发现子类成功执行了父类的两条输出指令。2.子类使用super访问父类的属性定义一个show2()...
2019-01-05 20:52:50
311
原创 类的继承
1.父类属性,方法可被子类继承2.父类类型的引用可以用来储存子类的对象储存的子类对象,使用了普通的方法:在父类和子类都定义了eat()方法,使用父类引用创建的对象如下:Person ss2=new Student();父类,子类的eat()方法如下:使用该对象来访问:ss2.eat();得到的结果如下:使用的是子类的方法,这种使用父类引用储存子...
2019-01-05 20:20:47
86
原创 内部类
1.成员在内部中可以访问外部的属性和方法,无论权限如何: 执行结果为:说明在内部类中可以访问到外部类的属性。那么是否可以访问方法·呢执行结果为:外部类的shower()方法为:说明方法也是可以正常访问的。2.内部类方法或属性与外部类冲突问题:获取内部类属性\方法:this.age获取外部类属性\方法:外部类类名.this.age默...
2019-01-03 21:09:28
77
原创 动态绑定与静态绑定辨析
1.静态绑定使用父类类型储存子类对象,返回父类属性。使用子类类型储存子类对象,返回子类属性。这样属于静态绑定先定义两个类:class Father{ int age=48;}class Son extends Father{ id=13;}使用父类类型储存一个子类对象son1:Father son1=new Son();System.out.pri...
2019-01-02 21:02:47
251
原创 Java面向对象初学-1
1.如何将对象元素传送给方法的形参public void transfer(Name name){}其中Name为对象所属类的类名 name为对象名称2.如何创建一个抽象类以建立一个抽象方法:抽象类的创建:public abstract void XX{}抽象类可以有自己的构造函数:(当然这里的构造函数可以重载)public abstrac...
2019-01-02 20:32:19
94
原创 Java初学问题汇总—2
1.Arrays接口报错:(toString执行时报错)原因:没有将Arrays的接口无法执行其下toString()的方法。解决方法:将相应的包导入进来。得出数组输出:2.foreach的用法:for(A:B){C}A:与B类型相同的局部变量,只能使用int i而不能使用int i=0;否则会报错B:数组对象C:循环体作用:数组元素从0索引位置开始...
2019-01-01 19:37:23
138
原创 面向对象学习笔记
1.子类可以继承父类所有的方法属性,子类中包含继承父类的部分,以及自己派生出的一部分。在父类部分中,子类可以使用非私有的那一部分,父类私有的一部分不可以使用。2.继承时关于构造函数调用顺序的问题:新建一个子类继承父类时,会先找到父类的地址,在其之后增加子类的独有元素。所有执行时先执行父类的构造函数,按照地址顺序,执行子类的构造函数,层级越低,构造函数执行顺序越靠后。这是子类的构造函...
2019-01-01 19:36:57
69
原创 Java初学—构造器的理解
1.构造方法是一个在创建对象时被自动调用的特殊方法。属性如下:构造方法如下:主类及执行结果如下,构造器Person()的执行在创建对象完成的同时就结束了。说明了构造方法在创建对象的同时被自动调用。2.构造器虽然有返回值 , 但是不能定义返回类型自定义返回语句如图所示,程序报错。3.当成员变量与局部变量冲突时,使用this关键字获取成员变量成员变量如下:...
2019-01-01 15:38:16
673
原创 if条件语句判断条件辨析
if条件语句是使用布尔表达式或布尔值作为分支条件来进行分支控制。1.也就是说当表达式值不为布尔值时编译报错:如下if(a=1){ System.out.println("a");}原因为表达式a=1是将a赋值为1,是个整形量,不是布尔值,故而程序报错。2.修改程序为:int a=1;if(a==1){ System.out.println("a");...
2018-12-28 22:14:16
3062
原创 Java初学问题汇总—1
1.Javadoc 提取注释文档错误:错误描述:Javadoc:错误-找不到可以文档化的公共或受保护的类。问题解析:需要将类声明成为public类型,才可以将注释的内容提取出来。2.cmd指令运行乱码错误:错误描述:cmd指令运行java指令时出现编码GBK不可映射字符。解决方案:使用Notepad++转码。具体步骤:将执行代码复制一份。 清空代码文档。 选择工具栏...
2018-12-28 08:59:43
279
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人