Java
老黑牛
一头在Android和Flutter领域深耕的老黑牛!
展开
-
简单-素数求解 时间缩短
花费时间是20361毫秒;code02:class TestPrimeNumber{public static void main(String[] args){boolean flag = false;long start = System.currentTimeMillis();for(int i=2;ifor(int j=2;j if(i%j==0){ f转载 2015-09-22 14:52:32 · 576 阅读 · 0 评论 -
抽象类VS接口
基于JDK1.8接口以interface修饰,抽象类以abstract修饰在接口中所有的方法、属性默认为public,抽象类里面允许有private方法和属性一个类可以实现多个接口,但只能继承一个抽象类接口和抽象类都不能使用new来创建。在接口中声明的属性默认是public final的,抽象类中没有这个限制接口一般不允许有实现的方法,抽象类中允许有实现了的方法如果想在接口写实现了的方法原创 2017-08-14 20:51:11 · 366 阅读 · 0 评论 -
Java垃圾回收算法学习
在Android开发中,免不了用mat对app进行相应的分析,检查是否有内存溢出,这就涉及到了Java垃圾回收相关的知识了。Java里的引用JDK1.2之后,Java对引用的概念进行了补充,将引用分为了强引用、软引用、弱引用、虚引用,引用强度一次降低。强引用:直接new出来的对象引用,只要强引用还在,垃圾收集器永远不会回收掉被引用的对象。软引用:描述还有用但并非必需的对象,对于软引用关联的对象,原创 2017-08-12 16:27:01 · 358 阅读 · 0 评论 -
String.intern()探究
官方API解释intern方法在实际开发中很少用到,但是其隐藏的技术点还是很重要的。那么,intern方法到底是干什么的呢?官方API如下(中文内容由本博主翻译^_^): intern public String intern() Returns a canonical representation for the string object. A pool of string原创 2017-08-17 21:21:36 · 457 阅读 · 1 评论 -
Java内存区域简述
在Java中,内存由虚拟机进行管理,不像C++那样需要为每个对象写相应的delete/free方法,不容易出现内存泄漏和内存溢出的问题。 Java虚拟机在执行java程序的过程中会把他所管理的内存划分为若干个不同的数据区域,如下图所示: 程序计数器程序计数器是一块很小的内存区域,可以看做当前线程所执行的字节码的行号指示器。字节码解释器在工作的时候就是通过这个计数器的值来选取下一条需要执行的字节码原创 2017-08-12 15:17:53 · 487 阅读 · 0 评论 -
常量池、运行时常量池、字符串值基本概念区分
常量池(Constant Pool):常量池数据编译期被确定,是Class文件中的一部分。存储了类、方法、接口等中的常量,当然也包括字符串常量。字符串池/字符串常量池(String Pool/String Constant Pool):是常量池中的一部分,存储编译期类中产生的字符串类型数据。(JDK1.6及1.6之前字符串常量池在方法区中,JDK1.7及1.7之后字符串常量池在堆中)运行时常量池(R原创 2017-08-17 19:43:53 · 1260 阅读 · 0 评论 -
利用反射调用私有方法
Teacher类中的私有方法: private void printToString() { System.out.println(toString()); }调用代码:try { Teacher t = new Teacher(); Method method = Teacher.class.getDeclaredMet原创 2017-02-13 20:01:50 · 852 阅读 · 0 评论 -
Java对象游离
public Item pop(){//删除栈顶元素 Item item = a[--N]; a[N] = null;//**避免对象游离** ... return item;}Java的垃圾收集策略是回收所有无法被访问的对象的内存。在我们对pop()的实现中,被弹出的元素的引用仍然存在于数组中。这个元素实际上就是个孤儿了,没有谁会再访问它,但Java编译器没法知道原创 2016-02-01 20:57:19 · 2118 阅读 · 0 评论 -
以FixedCapacityOfString为例学泛型设计
如果我们设计一个类,比如说设计一个定容栈(FixedCapacityOfString),则它只能处理特定类型的数据。比如定容栈FixedCapacityOfString只能处理String类型的数据,若想让它处理double数据呢?我们就需要重新用类似的代码重新设计一个类,也就是将String都换成double,有点麻烦!Java中的泛型就可以不用这么麻烦的解决这个问题。 我们可以用下面的代码声明原创 2016-01-31 21:07:28 · 590 阅读 · 0 评论 -
浮点数精度问题
转自:http://blog.csdn.net/yuhua3272004/article/details/3075436java保留两位小数问题:方式一:四舍五入 double f = 111231.5585; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal转载 2016-01-18 20:57:30 · 683 阅读 · 0 评论 -
"java *.java"报错:找不到或无法加载主类
用IDE写了个java文件,可以在IDE上正常运行,但是用cmd进行编译、运行时出现了问题。 第一个错误出现在编译过程中,报了一大堆错误。原因是:由于导入了外部的包(.jar文件)。解决方案:将“.jar”文件解压到 .java文件 所在的路径下。 比如我的:我的.java文件导入了arg.com.stddraw.jar这个包,那我就把这个包解压到了我的.java文件所在的E盘下,这样就成功的用原创 2016-02-09 10:12:37 · 2268 阅读 · 0 评论 -
java代码运行.bat或.exe文件
String command2 = "cmd /c start d:\\closePC.bat";//cmd /c为执行完命令后关闭cmd窗口,若将c改成k,则为执行完命令后cmd窗口不关闭! try { Runtime.getRuntime().exec(command2); } catch (IOException e) {原创 2015-12-25 10:40:16 · 752 阅读 · 0 评论 -
Map遍历问题
Iterator iter=dishes.entrySet().iterator(); while(iter.hasNext()){ Map.Entry<String, Double> entry=(Map.Entry<String, Double>) iter.next(); System.out.println(entry.getKey()+" "+entry.getValue())原创 2015-12-14 15:39:23 · 534 阅读 · 0 评论 -
深入理解内部类、静态内部类、局部内部类
概念介绍至于概念的介绍直接上代码,很容易分清三者的区别。public class Outer { public class Inner {//内部类 ... } public static class StaticInner{//静态内部类 ... } public void method(){ class m原创 2017-09-25 15:40:00 · 471 阅读 · 0 评论