随笔分类 - Java - 基础
Java SE
Java对象生命周期
摘要:[TOC]## 1. 创建阶段(Created)* 为对象分配存储空间* 开始构造对象* 从父类到子类对static成员进行初始化* 父类成员变量按照顺序初始化,递归调用父类的构造方法* 子类成员变量按照顺序初始化,子类构造方法调用一旦对象被创建,并有某个引用指向它,这个对象的状态就切换到了**应用...
阅读全文
Java对象创建阶段的代码调用顺序
摘要:在创建阶段系统通过下面的几个步骤来完成对象的创建过程为对象分配存储空间开始构造对象从超类到子类对static成员进行初始化超类成员变量按顺序初始化,递归调用超类的构造方法子类成员变量按顺序初始化,子类构造方法调用本文重点演示第三步到第五步:Grandpa类 1 package com.xinye.t...
阅读全文
一道简单的把ArrayList中的正负数组分开并求得边界索引的题目
摘要:给定一个List,里面存放的一组整数有正数和负数,要求把正数和负数分开,并得到正数和负数分割线索引(不要求排序,不能使用多层循环)解答方法并不算太复杂,重点注意边界条件和极端条件(全是正或者全是负) 1 /** 2 * 给定一个List,里面存放的一组整数有正数和负数,要求把正数和负数分开,并得到正数和负数分割线索引(不要求排序,不能使用多层循环) 3 */ 4 private void testLeft() { 5 ArrayList list = new ArrayList(); 6 // for(int i = 0;i < 200...
阅读全文
从Python学习中得到的一点启发 - Java逆向索引ArrayList
摘要:看了几天Python,感觉记忆力不行了,很多东西记不住了。但是终归是得到了一点知识:重写一个ArrayList,允许从负值的索引得到指定的项。然后写一个得到斐波拉契数组的方法,这种方法要比递归调用的方式好很多,性能上大概提升几百倍。关于Java的递归调用的性能: Java中的每一个方法调用都会把这个调用的方法加入到调用栈,等到一个方法执行完毕返回的时候(return,如果没有显式写return语句,实际上还是有的 - 方法内还有一个指针,用来执向当前执行的代码位置),才把方法从栈中弹出来,而在Java中,这个栈的维护会很费性能,而且递归调用还有个5000次的约束。所以,在Java中尽量不要使.
阅读全文
浙公网安备 33010602011771号