上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页
摘要: 比较基本类型double和float和某一个数是否相等的时候,不要用==或>=或<=,因为double和float都是有精度问题的,计算机只能保存一定位数的小数,这就会存在精度问题。 下面我们看一下java中float和double能够比较到小数后几位: 代码实现: 输出结果: falsefalse 阅读全文
posted @ 2017-09-17 15:08 傍晚的羔羊 阅读(3739) 评论(0) 推荐(0) 编辑
摘要: 给定一颗二叉树,逐层打印,并且每层打印的方向是不一样的,比如: 逐层打印的结果是:1 3 2 4 5 6 8 7 代码: 阅读全文
posted @ 2017-09-17 14:48 傍晚的羔羊 阅读(711) 评论(0) 推荐(0) 编辑
摘要: 两个变量int a,int b,不用临时变量过渡,两种方法: 第一种: a= a+b; b= a-b; a= a-b; 第二种:异或的方法,也就是位运算,两个相同的数异或是为0的。 a= a^b; b=a^b//就等于b=a^b^b; a=a^b//就等于a=a^b^a 阅读全文
posted @ 2017-09-16 20:00 傍晚的羔羊 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 平方,开根号在java中是很简单的,Math.sqrt(double n)或者 Math.pow(double a, double b),求a的b次方。但是我们可以自己想想,这些方法到底是怎么实现的。 就拿开根号来解释,它有两种方法,二分法和牛顿迭代法。 二分法: 比如求根号5 第一步:折半: 5/ 阅读全文
posted @ 2017-09-16 19:33 傍晚的羔羊 阅读(7327) 评论(0) 推荐(0) 编辑
摘要: 当我们new一个对象时,jvm会去判断对应的类是否被加载到内存中,如果没有的话,就会启动类加载器去加载对应的类。下面我讲解下java中的类加载器。 1. JVM类加载器的种类 JVM预定义了三种类型类加载器,当一个 JVM启动的时候,Java缺省开始使用如下三种类型类装入器: 启动类加载器(Boot 阅读全文
posted @ 2017-09-16 09:56 傍晚的羔羊 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 非常精彩的博客:JAVA反射与注解 什么叫反射? 反射机制就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 用一句话总结就是反射可以实现在运行时可以知道任 阅读全文
posted @ 2017-09-15 16:51 傍晚的羔羊 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 垃圾收集(Garbage Collection,GC),要设计一个GC,需要考虑解决下面三件事情: (1)哪些内存需要回收? (2)什么时候回收? (3)如何回收? 1.哪些内存需要回收? 根据《Java内存区域模型、对象创建过程、常见OOM》中介绍的java内存模型,其中,程序计数器、虚拟机栈、本 阅读全文
posted @ 2017-09-15 10:01 傍晚的羔羊 阅读(529) 评论(0) 推荐(0) 编辑
摘要: java有8中数据类型: 关于float和double的范围和精度问题可以参看这篇文章以及这篇文章 为什么boolean的长度既可以是1字节也可以是4字节呢? 理由来源是《Java虚拟机规范》一书中的描述:“虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在Java虚拟机中没有 阅读全文
posted @ 2017-09-14 20:11 傍晚的羔羊 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 首先注意,equals()方法接受的是Object类型的对象,并不一定是String类型。 阅读全文
posted @ 2017-09-14 11:33 傍晚的羔羊 阅读(1501) 评论(0) 推荐(1) 编辑
摘要: 转自: 【解惑】剖析float型的内存存储和精度丢失问题 1、小数的二进制表示问题 首先我们要搞清楚下面两个问题: (1) 十进制整数如何转化为二进制数 算法很简单。举个例子,11表示成二进制数: 11/2=5 余 1 5/2=2 余 1 2/2=1 余 0 1/2=0 余 1 0 结束 所以:11 阅读全文
posted @ 2017-09-14 11:04 傍晚的羔羊 阅读(1531) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页