JAVA的基本程序设计结构<上>
- 一个简单的Java应用程序
public class FirstSample {
public static void main(String[] args) {
System.out.println("We will not use 'Hello,World!'");
}
}- 访问修饰符 public ,用于控制程序的其他部分对这段代码的访问级别。
- 类名以大写字母开头,每个单词的第一个首字母都应该大写,称为骆驼命名法。
- Java虚拟机总是从指定类中的main方法的代码块开始执行,因此,类的源文件中必须包含一个main方法。
- 使用System.out对象并调用了它的println方法。点号(.)用于调用方法。
- System.out还有一个print方法,它不在输出之后增加换行符。
- 注释
- 最常用的方式是使用 //,其注释内容从 // 开始到本行结尾。
- 多行注释,/* ... */
- 自动生成文档,/** 开始,*/ 结束
数据类型
Java是一种强类型语言,必须为每一个变量声明一种类型。
共有8种基本类型,其中4种整型,2种浮点类型,1种字符类型 char 和 1种用于表示真值的boolean类型。
Java有一个能表示任意精度的算数包,称为“大数”。它并不是一种基本Java类型,而是一个Java对象。
整型(用于表示没有小数部分的数值,允许是负数)
int 类型,long 类型,short 类型,byte 类型
最常用 int类型,数字较大用long类型:长整型数值有一个后缀L或l
byte 和 short 类型主要用于特定的应用场合,例如,底层的文件处理或者存储空间很宝贵时的大数组。
在Java中,整型的范围与运行Java代码的机器无关。这就解决软件从一个平台移植得到另一个平台所带来的诸多问题。
浮点类型(用于表示有小数部分的数值)
float 类型和 double 类型
float 类型的数值有一个后缀 F 或 f (例如,3.14F)。实际上,只有很少的情况适合使用 float 类型,例如,需要单精度数的库,或者需要存储大量数据时。
double 双精度数值
用于表示溢出和出错情况的三个特殊的浮点数值:正无穷大、负无穷大、NaN(不是一个数字)。
例如,一个正整数除以0的结果为正无穷大。计算0/0或者负数的平方根结果为NaN。
判断是否为非数值,使用Double.isNaN方法。如下:
if(Double.isNaN(x))
- char 类型(用于表示单个字符)
- 如今,用于表示Unicode编码的代码单元。字面量值要用单引号括起来。例如:‘A’ 是编码值为65的字符常量。
- 强烈建议不要在程序中使用 char 类型。
- boolean 类型
- 有两个值:false 和 true ,用来判定逻辑条件。整型值和布尔值之间不能进行相互转换
- 变量与常量
- 与所有程序设计语言一样,Java也使用变量来存储值。常量就是值不变的变量
- 声明变量(不能使用Java保留字作为变量名)
int a; //变量的类型 变量名
变量初始化
声明变量之后,必须用赋值语句对变量进行显示初始化。不能使用未初始化的变量的值。
int a=12;
从Java10开始,对于局部变量,如果可以从变量的初始值推断出它的类型,就不需要声明类型。
var a=12; //只需要使用关键字var
var b="Hello"; //而无须指定类型
常量(关键字 final 指示常量)
final double CM_INCH=2.51; //关键字final表示这个变量只能被赋值一次。被赋值之后,就不能再更改了。习惯上,常量名使用全大写。
Java中,经常希望某个常量可以在一个类的多个方法中使用,将这些常量称为类常量。
public static final double CM_INCH=2.51; //关键字 static final 设置一个类常量
枚举类型(变量的取值在一个有限的集合内)
enum Size{SMALL,MEDIUM,LARGE,EXTRA_LARGE}; //自定义枚举类型
Size s=Size.MEDIUM; //Size类型的变量只能存储这个类型声明中给定的某个枚举值。或者特殊值null,表示这个变量没有设置任何值。
运算符
算术运算符(+、-、*、/)
当参与 / 运算的两个操作数都是整数时,表示整数除法;否则表示浮点除法。整数的求余操作(有时称为取模)用%表示。
例如,15/2等于7,15%2等于1,15.0/2等于7.5
注意:整数被0除将会产生一个异常,而浮点数被0除将会得到无穷大或NaN结果。
数学函数与常量
Math类中,计算一个数值的平方根,使用sqrt方法
double a=3;
double b=Math.sqrt(a);
System.out.println(b);
幂运算,Math类的pow方法
double c=Math.pow(a, b);
Math类提供了一些常用的三角函数
Math.sin Math.cos Math.tan Math.atan Math.atan2
指数函数以及它的反函数——自然对数以及以10为底的对数
Math.exp Math.log Math.log10
Java还提供了两个用于表示 π 和 e 常量的最接近的近似值
- Math.PI Math.E
不必在数学方法名和常量名前添加前缀“Math”,只要在源文件的顶部加上下面这些代码就行了
import static java.lang.Math.*;
System.out.println(E);
数值类型之间的转换

上图数值类型之间的合法转换中,有个黑色箭头,表示无信息丢失的转换;另外3个红色箭头,表示可能有精度损失的转换。
当用一个二元运算符连接两个值时(例如n+f,n是整数,f是浮点数),先要将两个操作数转换为同一种类型。
如果两个操作数中有一个是double / float / long 类型,另一个操作数将会转换为 double / float / long 类型。
否则,两个操作数都将转换为 int 类型
强制类型转换
double x=9.997;
int nx=(int)x; //double类型强制转换为int类型
int nx=(int) Math.round(x); //long类型强制转换为int类型 Math.round()四舍五入,返回结果为long类型
结合赋值和运算符
x += 4; 等价于 x = x + 4; (运算符放在 = 号左边,如 *= 或 %=)
如果运算符两边操作数类型不同,就会强制类型转换。例如,int x; x += 3.5; 是合法语句,将会把x设置为 (int)(x+3.5)
自增与自减运算符
n++ 或 n-- 将变量n的当前值加1或减1
++n 或 --n 表达式中,会先完成加1 --建议不要在表达式中使用
关系和boolean运算符
相等 3 == 7 值为false 不相等 3 != 7 值为true
&& 逻辑“与”运算符 || 逻辑“或”运算符 按照“短路”方法求值,如果第一个操作数能够确定了表达式的值,第二个操作数就不必计算了
三元操作符
表达式?true 时执行的语句:false 时执行的语句;
位运算符
& 和 | 运算符不采用“短路”方式来求值,得到计算结果之前两个操作数都需要计算。
括号与运算符级别
因 += 是右结合运算符,a += b += c 等价于 a += (b +=c) 也就是将 b += c 的结果(加上 c 之后的 b )加到 a
——引用书籍《Java 核心技术 卷I》基础知识(原书第11版)
JAVA的基本程序设计结构<上>的更多相关文章
- Java核心技术卷一基础知识-第3章-Java的基本程序设计结构-读书笔记
第3章 Java的基本程序设计结构 本章内容: 一个简单的Java应用程序 字符串 注释 输入输出 数据类型 控制流 变量 大数值 运算符 数组 本章主要讲述程序设计相关的基本概念(如数据类型.分支以 ...
- 201771010142 张燕 Java的基本程序设计结构第二周学习总结
第三章 Java的基本程序设计结构 第一部分 理论知识学习部分 一 基本知识: 1.标识符:由字母.下划线,美元符号和数字组成,第一个符号不能为数字,可以用作类名.变量名.方法名.数组名和文件名等. ...
- 1-03 Java的基本程序设计结构
1-03 Java的基本程序设计结构 3.1 & 3.2 在一个单词中间使用大写字母的方式称为骆驼命名法.以其自身为例,应该写成CamelCase). 与C/C++一样,关键字void表示这个 ...
- Java核心技术卷阅读随笔--第3章【Java 的基本程序设计结构】
Java 的基本程序设计结构 现在, 假定已经成功地安装了 JDK,并且能够运行第 2 章中给出的示例程序.我们从现在开始将介绍 Java 应用程序设计.本章主要介绍程序设计的基本概念(如数据类型.分 ...
- Java的基本程序设计结构(上)
在Java中,每一个变量属于一种类型(type).在声明变量时,变量所属的类型位于变量名之前. 例如: double salary; int vacationDays; long earthPopul ...
- 重新学习Java——Java基本的程序设计结构(二)
上一节简单回顾了Java基本的一些程序设计的知识,这一节将继续根据<Java核心技术>这本书,进行这方面知识的复习与探索. 1. 字符串 Java字符串实际上就是Unicode字符序列.例 ...
- JAVA的基本程序设计结构(下)
字符串 Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义类,叫做 String. String e=""; //an empty String String ...
- Java核心技术-Java的基本程序设计结构
1.一个简单的Java应用程序 public class FirstSample { public static void main(String[] args) { System.out.pring ...
- 重新学习Java——Java基本的程序设计结构(一)
最近在实验室看到各位学长忙于找工作的面试与笔试,深感自己的不足,决定重新好好学习一下<Java核心技术>这本书,曾经靠这本书走入Java的世界,但是也有很多的地方被我疏漏过去了,因此也是作 ...
随机推荐
- AutoJS 实现QQ小游戏胡莱三国爬塔
AutoJS 开发文档参考 环境 安卓QQ 胡莱三国小游戏 AutoJS APP 使用方法 安装AutoJs,打开无障碍模式,进入到胡莱三国小游戏,在Autojs中执行脚本 代码 "auto ...
- 使用命名管道承载gRPC
最近GRPC很火,感觉整RPC不用GRPC都快跟不上时髦了. gRPC设计 刚好需要使用一个的RPC应用系统,自然而然就盯上了它,但是它真能够解决所有问题吗?不见得,先看看他的优点: gRPC是一种与 ...
- 数据可视化之powerBI基础(十九)学会使用Power BI的参数,轻松搞定动态分析
https://zhuanlan.zhihu.com/p/55295072 静态的分析经常不能满足实际分析的需要,还需要引入动态分析,通过调节某个维度的增减变化来观察对分析结果的影响.在PowerBI ...
- 数据可视化之分析篇(六)使用Power BI进行流失客户分析
https://zhuanlan.zhihu.com/p/73358029 为了提升销量,在不断吸引新客户的同时,还要防止老客户离你而去,但每一个顾客不可能永远是你的客户,不可避免的都会经历新客户.活 ...
- 自动生成和安装requirements.txt依赖
在查看别人的Python项目时,经常会看到一个requirements.txt文件,里面记录了当前程序的所有依赖包及其精确版本号.这个文件有点类似与Rails的Gemfile.其作用是用来在另一台PC ...
- web测试中不容忽视的细节
最近在自动化测试的圈子里,我总是碰到很多人在群里和其他地方问为什么这个会出现错误? 为什么这个运行不了?为什么我百度了还是没用? 其实真正的原因可能是你忽略了下面这些需要注意的小地方: 1.页面分辨率 ...
- Linux文件搜索
一.whereis及which命令 这两个命令用来搜索命令的路径(也遵循/etc/updatedb.conf配置文件的筛选规则) whereis 命令名 ...
- 阿里云的maven仓库
自从开源中国的maven仓库挂了之后就一直在用国外的仓库,慢得想要砸电脑的心都有了.如果你和我一样受够了国外maven仓库的龟速下载?快试试阿里云提供的maven仓库,从此不在浪费生命…… 仓库地址: ...
- 你的JavaBean是否真的需要实现Serializable
众所周知 如果一个对象需要进行网络传输,那么该对象就需要实现Serializable接口,为了防止反序列失败,该对象需提供一个默认的serialVersionUID(该值在反序列化的时候会进行校验校验 ...
- C# WebClient几种常用方法的用法
1.UploadData方法(Content-Type:application/x-www-form-urlencoded) //创建WebClient 对象 WebClient ...