java基础学习四
一。java中的基本数据类型
二。double和float精度不准的问题
double和float本身确实存在某种缺陷,不能用于精确计算。
解决办法: 用java.math.BigDecimal,通过BigDecimal类可以解决上述问题
ArithUtil是自定义的一个工具类,封装了加减乘除操作。
- package ex;
- import java.math.*;
- public class BigDecimalDemo {
- public static void main(String[] args){
- System.out.println(ArithUtil.add(0.01, 0.05));
- System.out.println(ArithUtil.sub(1.0, 0.42));
- System.out.println(ArithUtil.mul(4.015, 100));
- System.out.println(ArithUtil.div(123.3, 100));
- }
- }
- class ArithUtil{
- private static final int DEF_DIV_SCALE=10;
- private ArithUtil(){}
- public static double add(double d1,double d2){
- BigDecimal b1=new BigDecimal(Double.toString(d1));
- BigDecimal b2=new BigDecimal(Double.toString(d2));
- return b1.add(b2).doubleValue();
- }
- public static double sub(double d1,double d2){
- BigDecimal b1=new BigDecimal(Double.toString(d1));
- BigDecimal b2=new BigDecimal(Double.toString(d2));
- return b1.subtract(b2).doubleValue();
- }
- public static double mul(double d1,double d2){
- BigDecimal b1=new BigDecimal(Double.toString(d1));
- BigDecimal b2=new BigDecimal(Double.toString(d2));
- return b1.multiply(b2).doubleValue();
- }
- public static double div(double d1,double d2){
- return div(d1,d2,DEF_DIV_SCALE);
- }
- public static double div(double d1,double d2,int scale){
- if(scale<0){
- throw new IllegalArgumentException("The scale must be a positive integer or zero");
- }
- BigDecimal b1=new BigDecimal(Double.toString(d1));
- BigDecimal b2=new BigDecimal(Double.toString(d2));
- return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
- }
- }
三。int和Integer区别
int是一个基本数据类型,基本类型不具备面向对象的基本特征,没有属性和方法。
为了面向对象操作的一致性,java为每一种基本类型都提供了相应的封装类型,封装类型属于引用类型,具有方法和属性,利用这些属性和方法可以很方便的实现一些基本类型难以实现的功能。例如将数值转换为字符串,将字符串转换为数值等。
四。强转原则
五。值传递和引用传递区别
1.存储机制:简单类型变量直接在栈内开辟空间存储变量值。引用型变量由引用空间和存储空间构成,引用空间在栈内,存储空间在堆中,负责存储变量值,引用空间存储的是存储空间的首地址。
2.值传递:简单型变量传递的是内容本身,引用变量传递的是引用地址。
六。x+=y和x=x+y区别、&和&&区别(包括|和||)
前一种包含的操作是:“x=x+y”和强制转换两个操作
第二种必须要求左右两边类型一致。
&被称为逻辑与,在计算表达式结果时,表达式每个操作数都要参与计算,然后才得出整个表达式的结果。
&&被称为短路与,从左到右进行计算,如果发现一个false值,就放弃计算,直接将false作为整个表达式的计算结果并返回。(效率更高)
|和||和&/&&情况类似,||碰到true操作数就放弃后续运算,将true作为计算结果并返回。
java基础学习四的更多相关文章
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- java基础学习总结——java环境变量配置(转)
只为成功找方法,不为失败找借口! 永不放弃,一切皆有可能!!! java基础学习总结——java环境变量配置 前言 学习java的第一步就要搭建java的学习环境,首先是要安装 JDK,JDK安装好之 ...
- JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API
森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397 文章- 0 评论- 78 JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- Java基础学习(4)
Java基础学习(四) String类 特点:创建后不可再修改,看起来的修改只是创建了新的对象 常用方法 StringBuilder类 目的:解决String类频繁创建对象的问题 常用方法 特点:非线 ...
- Java基础学习-- 继承 的简单总结
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...
- Java基础学习中一些词语和语句的使用
在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...
- 转载-java基础学习汇总
共2页: 1 2 下一页 Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3 Java基础学习总结——Java对象的序列化和 ...
- java基础学习总结——开篇
java是我学习的第一门编程语言,当初学习java基础的时候下了不少功夫,趁着这段时间找工作之际,好好整理一下以前学习java基础时记录的笔记,当作是对java基础学习的一个总结吧,将每一个java的 ...
随机推荐
- Python学习【第7篇】:Python之常用模块2
hashlib,configparser,logging模块 一.常用模块二 hashlib模块 hashlib提供了常见的摘要算法,如md5和sha1等等. 那么什么是摘要算法呢?摘要算法又称为哈希 ...
- STL源码分析之迭代器
前言 迭代器是将算法和容器两个独立的泛型进行调和的一个接口. 使我们不需要关系中间的转化是怎么样的就都能直接使用迭代器进行数据访问. 而迭代器最重要的就是对operator *和operator-&g ...
- Cashier (codeforces 1059A)
题目倒是不难注意第一个时间段可能不是从零开始的,所以注意第一个时间的开始节点与零之间可能存在休息的时间 还有这个题我打的时候一直谜之RE......发现原来bool函数忘记写return了.....以 ...
- R 安装car包失败
在RStudio里安装car包的时候报错 /usr/bin/ld: cannot find -llapack /usr/bin/ld: cannot find -lblas make: *** [qu ...
- 20170704-WNDR4300串口连接信息
find_hif: bootstrap = 0xaf055aWASP BootROM Ver. 1.1Nand Flash initONFI: Control setting = 0xb44find_ ...
- Delphi 10.3.2最新消息
官方已经发布消息,招内测人员了! https://www.barnsten.com/default/newsupdates/details?news_id=328 https://docs.googl ...
- 3D全景之ThreeJs
3D全景之ThreeJs 一.前言 随着H5越来越多的被应用到各个领域,3D也越来越频繁的出现在各个H5案例中,今天我们就来讨论一下3D全景的实现. 据百度百科上介绍:720全景是视角超过人的正常视角 ...
- 清北学堂模拟赛d6t1 角谷猜想
分析:不用删数字,我们考虑加入数字,维护一个栈,把不是4和7的数加进去,遇到3看栈顶是不是1,是的话弹出来就可以了. #include <bits/stdc++.h> #define N ...
- CF410div2 A. Mike and palindrome
/* CF410div2 A. Mike and palindrome http://codeforces.com/contest/798/problem/A 水题 */ #include <c ...
- asp.net--解决上传文件大小限制
原文地址 第一种方法,主要适用于IIS6.0版本 一.修改配置Web.Config文件中的httpRuntime节点 对于asp.net,默认只允许上传4M文件,增加如下配置,一般可以自定义最大文件大 ...