第三章 Java的基本层序设计结构

第一章  Java程序设计概述

  在网页中运行的Java程序称为 applet.

  在服务器中运行的Java程序称为 servlet.

关于Java的常见误解:

其中第三点说到: 3.Java是一种非常容易学习的程序设计语言

像Java这种功能强大的语言大都不太容易学习. 首先,必须将编写玩具式程序的轻松和开发实际项目的艰难区分开来.

第二章  Java程序设计环境

Windows 或 Linux : 32位选择x86, 64位以 x64

第三章  Java的基本程序设计结构

根据Java语言规范, main方法必须声明为pulic, 不过, 当main方法不是public时, 有些版本的Java解释器也可以执行Java程序.

在Java SE 1.4 及以后的版本中,强制main方法时public的.  

数据类型

Java是一种强类型语言. 这就意味着必须为每一个变量生命一种类型.

在Java中,一共有8种基本类型(primitive type)

其中有4种整型、2种浮点类型、1种用于表示Unicode编码的字符单元的字符类型  char 和 1 种用于表示真值的boolean 类型。

类型  存储需求 取值范围

int

4字节 -2 147 483 648 ~ 2 147 483 647 (正好超过21亿)

short

2字节 -32 768 ~ 32767

long

8字节 -9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807

byte

1字节 -128 ~ 127

在通常情况下,int类型最常用。但如果表示星球上的居住人数,就需要使用long类型了。byte 和 short 类型主要用于特定的应用场合,例如,底层的文件处理或者需要控制占用空间量的大数组。

浮点类型

浮点类型用于表示有小数部分的数值。在Java中有两种浮点类型

类型  存储需求 取值范围
float 4字节 大约 +- 3.402 823 47E+38F(有效位数为6~7位)
double 8字节 大约 +-  1.797 693 134 862 315 72E+308(有效位数为15位)

可以使用十六进制表示浮点数值。例如,0.125=2-3 可以表示成0x1.0p-3

在十六进制表示法中,使用p表示指数,而不是e。注意,尾数采用十六进制,指数采用十进制。指数的基数是2,而不是10.

用于表示溢出或出错情况的三个特殊的浮点数值:

  • 正无穷大
  • 负无穷大
  • NaN(不是一个数字)

例如:一个正整数除以0的结果为正无穷大。计算0/0或者负数的平方根结果为NaN。

特别要说明的是,不能这样检测一个特定值是否等于Double.NaN:

        double x = 0.2;
        if (x == Double.NaN){  // is never true
            System.out.println("x == Double.NaN");
        }

  所有“非数值”的值都认为i是不相同的。然鹅,可以使用Double.isNaN方法:

        if (Double.isNaN(x))// check whether x is "not a number"    

  浮点数不适用于无法接受舍入误差的金融计算中。例如:

        System.out.println(2.0-1.1);    // 输出结果为:0.8999999999999999

而不是凡人们想象的 0.9 。

这种舍入误差的主要原因是浮点数值采用二进制系统表示,而在二进制系统中无法精确地表示分数1/10 。

这就好像十进制无法精确地表示分数1/3 一样。

如果在数值计算中不允许有任何舍入误差,就应该使用BigDecimal类。

char类型

char类型的字面量值要用单引号括起来。例如‘A‘ 是编码值为65所对应的字符常量。它与"A" 不同,"A"是包含一个字符A的字符串。char类型的值可以表示为十六进制,其范围从、\u0000到\Uffff。

boolean类型

boolean(布尔)类型有两个值:false和true,用来判断逻辑条件。整型值和布尔值之间不能进行相互转换。

未完待续。。。。。。有点晚了

原文地址:https://www.cnblogs.com/Night-Watch/p/11816913.html

时间: 2024-12-14 18:46:50

第三章 Java的基本层序设计结构的相关文章

《java并发编程的艺术》读书笔记-第三章Java内存模型(二)

一概述 本文属于<java并发编程的艺术>读书笔记系列,第三章java内存模型第二部分. 二final的内存语义 final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.可以参照之前整理的关键字final.这里作者主要介绍final域的内存语义. 对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序. 初次读一个包含final域的对象的引用,与随后初次读这

&lt;java并发编程的艺术&gt;读书笔记-第三章java内存模型(一)

一概述 本文属于<java并发编程的艺术>读书笔记系列,继续第三章java内存模型. 二重排序 2.1数据依赖性 如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性.数据依赖分下列三种类型: 名称 代码示例 说明 写后读 a = 1;b = a; 写一个变量之后,再读这个位置. 写后写 a = 1;a = 2; 写一个变量之后,再写这个变量. 读后写 a = b;b = 1; 读一个变量之后,再写这个变量. 上面三种情况,只要重排序两个操作的执行顺序,

Java Web 学习笔记 第三章 java基础(二)

第三章 java基础(二) 一.转义符 转义字符是"\",通过转义字符,可表示一些特殊的字符. 例如: '\n'  表示回车 '\t'   表示 制表符字符,一个制表符表示向右跳8-10个字符 '\\'   表示\ '\''   表示单引号 '\"'  表示双引号 "\u4e2d"表示unicode编码对应的字符(汉字:中). 二.布尔类型的概念和用法 boolean 类型用来表示肯定或否定两种可能. boolean 常用在分支语句.循环语句中. true

第三章 Java内存模型(上)

本章大致分为4部分: Java内存模型的基础:主要介绍内存模型相关的基本概念 Java内存模型中的顺序一致性:主要介绍重排序和顺序一致性内存模型 同步原语:主要介绍3个同步原语(synchroized.volatile和final)的内存语义及重排序规则在处理器中的实现 Java内存模型的设计:主要介绍Java内存模型的设计原理,及其与处理器内存模型和顺序一致性内存模型的关系 Java内存模型的基础 并发编程模型的两个关键问题 在并发编程中,需要处理两个关键问题: 线程之间如何通信:指线程之间以

Java核心技术第三章----Java的基本程序设计结构重难点总结

最近在看Java核心技术这本书,这里对第三章个人认为的重难点做一个总结.方便以后回顾,个人能力有限,本人菜鸟,大神勿喷,请大家多多指教. 一.位运算符 指定 A = 66(0100 0010); B = 22 (0001 0110)(这里为了简化说明支取一个字节即8位来运算) 位运算符比一般的算术运算符速度要快,而且可以实现一些算术运算符不能实现的功能.如果要开发高效率程序,位运算符是必不可少的.位运算符用来对二进制位进行操作,包括:按位与(&).按位或(|).按位异或(^).按位取反(~).按

(第三章)Java内存模型

一.java内存模型的基础 1.1 并发编程模型的两个关键问题 在并发编程中,需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体).通信是指线程之间以何种机制来交换信息.在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递. 在共享内存的模型里,线程之间共享程序的公共状态,通过读-写内存中的公共状态来进行隐式通信.在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过发送消息来显示进行通信. 同步是指程序中用于控制不同线程间操作发生相对顺序

第三章 Java框架整合--企业中的项目架构以及多环境分配

1.业务模块与数据模块分离 在实际开发中,我们项目的架构业务模块和数据模块是分离的,举个例子,假设我们的项目有"人员管理模块"和"酒店管理模块"两个模块,按照上一章的介绍,我们会建立下图所示的项目结构: 其中,人员管理模块的controller.service.dao.mapper都在一个项目中,而在实际使用中,我们会将数据模块分离出来,即将以上两个子模块的service.dao.mapper拿出来,放在一个子项目中,形成如下的项目结构: 注意以下几点: 包的命名最

第三章:更新异常与规范化设计

前言 在前两章中,主要讲了ER建模和关系建模.在具体分析如何用数据库管理软件RDBMS(Relational Database Management System)实现这些关系前,我想有必要思考下面这个问题: 问什么要这么麻烦?为什么又是ER建模又是关系建模的? 本章的出发点就是回答这个问题.然而某种程度上,也是回答另一个本质性的问题:为什么要有数据库? 更新异常 数据库的四大操作:增,删,改,查中,除了查,其他三个都可归为更新操作.而总的来说,ER建模和关系建模的目的,就是为了避免因大量冗余数

(第三章)Java内存模型(中)

一.volatile的内存语义 1.1 volatile的特性 理解volatile特性的一个好办法是把对volatile变量的单个读/写,看成是使用同一个锁对这些单个读/写操作做了同步.下面通过具体的示例来说明,示例代码如下: class VolatileFeaturesExample { volatile Long vl = 0L; //使用volatile声明64位的Long型变量 public void set(Long l) { vl = l; //单个volatile变量的写 } p