一。java中的基本数据类型

  

二。double和float精度不准的问题

    

    double和float本身确实存在某种缺陷,不能用于精确计算。

    解决办法: 用java.math.BigDecimal,通过BigDecimal类可以解决上述问题

    

    ArithUtil是自定义的一个工具类,封装了加减乘除操作。

  1. package ex;
  2. import java.math.*;
  3. public class BigDecimalDemo {
  4. public static void main(String[] args){
  5. System.out.println(ArithUtil.add(0.01, 0.05));
  6. System.out.println(ArithUtil.sub(1.0, 0.42));
  7. System.out.println(ArithUtil.mul(4.015, 100));
  8. System.out.println(ArithUtil.div(123.3, 100));
  9. }
  10. }
  11. class ArithUtil{
  12. private static final int DEF_DIV_SCALE=10;
  13. private ArithUtil(){}
  14. public static double add(double d1,double d2){
  15. BigDecimal b1=new BigDecimal(Double.toString(d1));
  16. BigDecimal b2=new BigDecimal(Double.toString(d2));
  17. return b1.add(b2).doubleValue();
  18. }
  19. public static double sub(double d1,double d2){
  20. BigDecimal b1=new BigDecimal(Double.toString(d1));
  21. BigDecimal b2=new BigDecimal(Double.toString(d2));
  22. return b1.subtract(b2).doubleValue();
  23. }
  24. public static double mul(double d1,double d2){
  25. BigDecimal b1=new BigDecimal(Double.toString(d1));
  26. BigDecimal b2=new BigDecimal(Double.toString(d2));
  27. return b1.multiply(b2).doubleValue();
  28. }
  29. public static double div(double d1,double d2){
  30. return div(d1,d2,DEF_DIV_SCALE);
  31. }
  32. public static double div(double d1,double d2,int scale){
  33. if(scale<0){
  34. throw new IllegalArgumentException("The scale must be a positive integer or zero");
  35. }
  36. BigDecimal b1=new BigDecimal(Double.toString(d1));
  37. BigDecimal b2=new BigDecimal(Double.toString(d2));
  38. return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
  39. }
  40. }

三。int和Integer区别

  int是一个基本数据类型,基本类型不具备面向对象的基本特征,没有属性和方法。

  为了面向对象操作的一致性,java为每一种基本类型都提供了相应的封装类型,封装类型属于引用类型,具有方法和属性,利用这些属性和方法可以很方便的实现一些基本类型难以实现的功能。例如将数值转换为字符串,将字符串转换为数值等。

四。强转原则

  

五。值传递和引用传递区别

   1.存储机制:简单类型变量直接在栈内开辟空间存储变量值。引用型变量由引用空间和存储空间构成,引用空间在栈内,存储空间在堆中,负责存储变量值,引用空间存储的是存储空间的首地址。

     2.值传递:简单型变量传递的是内容本身,引用变量传递的是引用地址。

六。x+=y和x=x+y区别、&和&&区别(包括|和||)

  前一种包含的操作是:“x=x+y”和强制转换两个操作

  第二种必须要求左右两边类型一致。

  &被称为逻辑与,在计算表达式结果时,表达式每个操作数都要参与计算,然后才得出整个表达式的结果。

  &&被称为短路与,从左到右进行计算,如果发现一个false值,就放弃计算,直接将false作为整个表达式的计算结果并返回。(效率更高)

  |和||和&/&&情况类似,||碰到true操作数就放弃后续运算,将true作为计算结果并返回。

java基础学习四的更多相关文章

  1. Java基础学习笔记总结

    Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...

  2. java基础学习总结——java环境变量配置(转)

    只为成功找方法,不为失败找借口! 永不放弃,一切皆有可能!!! java基础学习总结——java环境变量配置 前言 学习java的第一步就要搭建java的学习环境,首先是要安装 JDK,JDK安装好之 ...

  3. JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API

    森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397  文章- 0  评论- 78  JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...

  4. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  5. Java基础学习(4)

    Java基础学习(四) String类 特点:创建后不可再修改,看起来的修改只是创建了新的对象 常用方法 StringBuilder类 目的:解决String类频繁创建对象的问题 常用方法 特点:非线 ...

  6. Java基础学习-- 继承 的简单总结

    代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...

  7. Java基础学习中一些词语和语句的使用

    在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...

  8. 转载-java基础学习汇总

    共2页: 1 2 下一页  Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3     Java基础学习总结——Java对象的序列化和 ...

  9. java基础学习总结——开篇

    java是我学习的第一门编程语言,当初学习java基础的时候下了不少功夫,趁着这段时间找工作之际,好好整理一下以前学习java基础时记录的笔记,当作是对java基础学习的一个总结吧,将每一个java的 ...

随机推荐

  1. POJ 3984 迷宫问题 (BFS + Stack)

    链接 : Here! 思路 : BFS一下, 然后记录下每个孩子的父亲用于找到一条路径, 因为寻找这条路径只能从后向前找, 这符合栈的特点, 因此在输出路径的时候先把目标节点压入栈中, 然后不断的向前 ...

  2. 洛谷——P2574 XOR的艺术

    P2574 XOR的艺术 很久之前就想挑战一下这道题了,线段树下传标记的入门题,跟区间加法下传标记类似. #include<bits/stdc++.h> #define N 1000005 ...

  3. 57 和为S的数字

    题目一:和为S的两个数字 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小 ...

  4. 个人学习记录--取表中Name相同的最大值,非Group By,可延伸

    ), qy ), je INT); INSERT INTO @t SELECT '产品一', '北京', UNION ALL SELECT '产品一', '上海', UNION ALL SELECT ...

  5. 用 console.time()和 console.timeEnd() 测试你的 javascript 代码执行效率

    无意中学习到了一种测试 javascript 代码执行效率的一种方法,就记下来便于以后使用,用到了console对象中的  time  和  timeEnd  方法 . console.time('m ...

  6. Django——6 模型基础ORM 数据库连接配置 模型的创建与映射 数据的增删改查

    Django Django的ORM简介 数据库连接配置 模型的创建与映射 数据库的增删改查 增数据 查数据及补充 改数据 删数据   Django的ORM系统分析 ORM概念:对象关系映射(Objec ...

  7. 洛谷 1373 dp 小a和uim之大逃离 良心题解

    洛谷 1373 dp 这题还不算太难,,当初看的时候不是很理解题意,以为他们会选择两条不同的路径,导致整体思路混乱 传送门 其实理解题意和思路之后还是敲了不短的时间,一部分身体原因再加上中午休息不太好 ...

  8. 洛谷 P3067 [USACO12OPEN]平衡的奶牛群Balanced Cow S…

    P3067 [USACO12OPEN]平衡的奶牛群Balanced Cow S… 题目描述 Farmer John's owns N cows (2 <= N <= 20), where ...

  9. 关于重置IOS App请求推送的授权请求

    项目要加入推送通知.測试完本地通知后.发现測不了远程通知.于是想重置授权请求. 下面是重置授权请求的方法: 方法一: 通用->还原->抹掉全部内容和设置 可是第一种方法非常费时,抹掉内容预 ...

  10. [RxJS 6] The Catch and Rethrow RxJs Error Handling Strategy and the finalize Operator

    Sometime we want to set a default or fallback value when network request failed. http$ .pipe( map(re ...