java 四舍五入_《JAVA编程思想》5分钟速成:1-4章:概述
前言:
1、面向对象的特征有哪些方面?
2、Math.round(11.5) 等于多少? Math.round(-11.5)等于多少?
3、float f=3.4;是否正确?
4、short s1 = 1; s1 = s1 + 1;有错吗? short s1 = 1; s1 += 1;有错吗?
5、int 和Integer 有什么区别?
6、Java 有没有goto?
7、在Java 中,如何跳出当前的多重嵌套循环?
8、&和&&的区别?
9、swtich 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?
10、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
第一章、对象导论
1.1 抽象过程
面向对象编程:(OOP,Object Oriented Programming 面向对象的程序设计):
成功的面向对象的五个特性:
(1)万物皆为对象;
(2)程序是对象的集合,他们通过发送消息来告知彼此所要做的;
(3)每个对象都可以拥有其他对象(has-a);
(4)每个对象(Instance)都有类型(Class);
(5)某一类型的所有对象都可以接收同样消息(is-a)。
1.2 对象类型
类:具有相同的特性(数据元素)和行为(功能),实际上就是一个数据类型。包含:
基本数据类型:
抽象数据类型:比如容器(即JAVA类库)
接口(interface):类似于定义了类的某些功能。
备注:Unified Modeling Language (UML)又称统一建模语言或标准建模语言。
1.3 封装
被隐藏的具体实现:
(1)不让客户端程序员访问他们不应该访问的部分;
(2)修改类内部而不用担心影响到客户端程序员;
1.4 复用
复用的具体实现方法(两种):
组合(has-a)/聚合:建议优先采用此方式。
继承(is-a):
备注:is-like-a : 派生类新增了methods或fileds。
1.5 多态
多态(也称作动态绑定、后期绑定或运行时绑定)。
前期(编译时)绑定&后期(运行时)绑定:
- 方法重载(overload)实现的是编译时的多态性(也称为前绑定);
- 方法重写(override)实现的是运行时的多态性(也称为后绑定)。
一个非面向对象语言在调用时会引起所谓的前期绑定,然而在OOP中,程序直到运行时才能确定代码的地址,因此面向对象语言使用了后期绑定的概念。在java中,动态绑定是默认的。
1.6 单继承
Java 特性(不同于C++):
单根继承结构使垃圾回收器的实现变得容易得(?)。
Object是所有类的基类。
1.7 容器
List/Map/Set/Queue/Tree/Stack etc..
1.8 对象的创建和生命期
对象的创建:Java完全采用了动态内存分配方式(基本类型只是一种特例)。每当想要创建对象时,就要使用new关键字来构建对象的动态实例。
对象的生命期:jvm gc自动实现内存(垃圾)回收。
1.9 异常(Exception)&并发& C/S编程
Java内置Exception和并发机制,并擅长于 C/S编程领域。
第二章、一切皆对象
2.1 对象引用
String s = a; //借助对象引用,来操控对象
2.2 创建对象
String s = new String("abc");
2.3 基本数据类型(内存一致性):
Java的基本类型所占存储空间大小不随机器硬件架构的变化而变化。这种所占存储空间大小的不变性是Java程序比用其他大多数语言编写的程序更具可移植性的原因之一。
2.4 作用域(scope):
Java对象不具备和基本类型一样的生命周期。当用new创建一个Java对象时,它可以存活于作用域之外。如:
{
String s = new String("a string");
} // End of scope
引用 s 在作用域终点就消失了。然而,s 指向的 String 对象仍继续占据内存空间。
2.5 import 关键字
import关键字指示编译器导入一个包,也就是一个类库(在其他语言中,一个库不仅包含类,还可能包括方法和数据,但是Java中所有的代码都必须写在类里)。
备注:特定类 java.lang 会被自动导入到每一个Java文件中。
2.6 static 关键字
2.6.1 通过 static 关键字可以满足以下两方面情形的需要:
- 只想为某一特定域分配单一存储空间,而不去考虑空间要创建多少对象,甚至根本就不创建任何对象。
- 希望某个方法不与包含它的类的任何对象关联在一起。也就是说,即使没有创建对象,也能够调用这个方法。
2.6.2 static 字段(类字段,单一存储空间)
如创建两个对象,st1.i 和 st2.i 指向同一存储空间,共享同一个 i (static 字段),因此它们具有相同的值47。
2.6.3 static 方法(类方法)
a. static方法重要用法:在不创建任何对象的前提下就可以调用它。这一点对定义main()方法很重要(所以main()方法是一个 satic 方法),这个方法是运行一个应用时的入口点。
b. 关于static方法内部是否能调用非静态方法:因为没有this,就没有对象,所以不能直接调用非静态方法;但可以传递一个对象引用到静态方法里,然后通过这个引用(和this效果相同)来调用非静态方法和访问非静态数据成员。
c. 有些人认为static方法不是“面向对象”的,因为它们的确具有全局函数的语义;使用static方法时,由于不存在this,所以不是通过“向对象发送消息”的方式来完成的。
2.7 javadoc标签
文档注释的一些标签:
@see 引用其他类
@link package.class#member laber 与@see极其类似,只是它用于行内
@inheritDoc 继承的注释
@version 版本信息
@author 作者
@since 最早使用版本
@param 参数说明
@return 返回值
@throws 抛出异常
@deprecated 过时的 被@Deprecated取代
第三章、操作符
3.1 赋值
两种赋值方式:
引用赋值:a = b; //a变化,b也会变化
方法参数赋值:func(a);//func()中的para a变化,方法调用处的a也会变化。
3.2 算术&关系&逻辑&按位运算符
逻辑运算的短路现象
3.3 类型转换
窄化转换:eg:double ->int 信息丢失(截尾),不安全的方式;
扩展转换:eg:int->double 安全的方式;
备注:舍入:Math.round()来实现四舍五入。
3.4 sizeof()
Java没有sizeof()操作符:Java不需要sizeof()操作符来满足这方面的需要,因为所有数据类型在所有机器中的大小是相同的。我们不必考虑移植问题——它已经被设计在语言中了。
第四章、控制和执行流程
4.1 true 和 false
注意Java不允许我们将一个数字作为布尔值使用,这与C和C++ 不同(C/C++中,“真”是非零,而“假”是零)。如果将数字作为布尔表达式,Java编译器会直接报错。
4.2 迭代:
while(): 先检查条件,再判断是否执行;
do-while: 先执行,再判断条件(同上区别:一定会执行一次);
for :
for-each:
4.3 返回
return/break/continue
关于执行跳转:
- java中没有用到goto语法。
- Java中跳出循环的实现方法:break TAG_A;或者continue TAG_B;
下章链接:
《JAVA编程思想》5分钟速成:第5章(初始化和清理)
java 四舍五入_《JAVA编程思想》5分钟速成:1-4章:概述相关推荐
- 《Java编程思想》读书笔记 第十三章 字符串
<Java编程思想>读书笔记 第十三章 字符串 不可变String String对象是不可变的,每一个看起来会修改String值的方法,实际上都是创建一个全新的String对象,以及包含修 ...
- Java 第一阶段建立编程思想 【房屋出租系统】
Java 第一阶段建立编程思想 [房屋出租系统] 1. 项目需求说明 2. 项目界面 1. 主菜单 2. 新增房源 3. 查找房源 4. 删除房源 5. 修改房源 6. 房屋列表 7. 退出系统 3. ...
- 在java中三种编程思想(OOA,OOD,OOP)
在java中三种编程思想:OOA,OOD,OOP OOA 一.OOA的主要原则. 二.面向对象分析产生三种分析模型 三.OOA的主要优点 四.OOA方法的基本步骤 OOD 一.OOD背景知识 二.OO ...
- java保留两位小数四舍五入_关于java 四舍五入使java保留2位小数示例讲解
关于java 四舍五入使java保留2位小数示例讲解 复制代码 代码如下: /* * 测试四舍五入 */ package com.icer.test; /** * * @author Hanbin * ...
- 基于STM32F103移植华为LiteOS_任务挂起与恢复_面向对象编程思想之按键状态机
华为LiteOS_任务挂起与恢复_面向对象编程思想之按键状态机 因为在做华为LiteOS任务挂起和恢复需要使用到按键去触发任务挂起和恢复动作,因为我就萌发出使用状态机这种架构做一个按键检测触发.回想已 ...
- JAVA面向接口的编程思想与具体实现
面向对象设计里有一点大家已基本形成共识,就是面向接口编程,我想大多数人对这个是没有什么觉得需要怀疑的. 问题是在实际的项目开发中我们是怎么体现的呢? 难道就是每一个实现都提供一个接口就 ...
- Java中面向对象的编程思想
目录 面向对象的基本概念 面向对象的编程思想 Java类 Java对象 对象与类的关系 变量的分类 方法的分类 方法的重载 对象与引用 参数传递 this关键字 static关键字 代码块 小总结 包 ...
- java线程的优先级是数字越大优先级越高_《深入理解Java虚拟机》5分钟速成:12章(Java内存模型与线程)...
第12章 Java内存模型与线程 前言: 1.物理机如何处理并发问题? 2.什么是Java内存模型? 3.原子性.可见性.有序性的具体含义和应用实现? 4.volatile 关键字特性? 5.基于vo ...
- java终结方法_java编程思想之并发(终结任务)
有时我们需要任务被突然的终止.这一节将学习有关终止的各类问题. 装饰性花园 这是一个让我们观察的示例,他不仅演示了终止问题,而且还演示了资源共享.下面的仿真程序中,花园委员会希望知道每天进入公园的总人 ...
最新文章
- 基础001.Markdown编写云笔记
- C#反射实例No.1
- wxPython和PyQt谁才是最赞的Python GUI库?
- python menu实例_Python高级进阶#019 pyqt5菜单menu应用,新建多窗体
- oracle 11g 1033,ORACLE出现错误1033和错误ORA-00600的解决方法
- 2019黑龙江大学程序设计竞赛
- ITK:Levenberg-Marquardt优化
- mysql 存储过程 模糊查询_Mysql之存储过程“模糊查询drop表”
- linux显卡内核修改,iTOP-4412开发板-驱动-linux显卡驱动的修改方法
- python类的mod_apache+mod_python
- Python--SQLite学习(10.29)
- 西门子s7 计算机通讯,PLC与计算机通讯连接
- [翻译]为EXPRESSION WEB 4添翼—如何支持HTML5设计开发!
- 2022年前端面试题
- Linux基线检查( 一)
- 【资讯】德勤在香港成立区块链实验室
- 第87篇ES之Elastica-php匹配多值字段及给Problem的elementName设中文分词ik
- 小程序——疫情下企业数字化的新方向
- 热烈祝贺:广东省快递行业协会加入2023上海国际快递物流展
- 苏宁商品详情API接口(商品详情页数据接口)
热门文章
- java 存储cookie_java设置cookie,存储和读取 | 学步园
- @change=“change()“与@change=“change“的区别
- Oracle Spatial 翻译第一漳
- app测试之耗电量测试
- 在 Linux 上使用 Meld 比较文件夹
- mac更新java失败解决办法
- apache common-io.jar FileUtils
- ubuntu下python thrift安装
- ASP.NET的地址重写“.NET研究”(URLRewriter)实现原理及代码示例
- OpenExpressApp对建模支持的初步计划