[JAVA学习笔记]JAVA基本程序设计结构
一个简单的Java应用程序
public class FirstSample
{
public static void main(String[] args)
{
System.out.println("Just don't use 'Hello, World!'");
}
}
这个简单的Java应用程序,只发送一条消息到控制台窗口中,但所有的Java应用程序都具有这种结构。其中:
- 关键字public 称为访问修饰符,这些修饰符用于控制程序其他部分对这段代码的访问级别。
- 关键字class 表明Java 程序中的全部内容都包含在类中。这里的类相当于一个加载程序逻辑的容器,程序逻辑定义了程序的行为。
- class 后紧跟类名。类的命名规范应当符合骆驼命名法即:类似CamelCase。
- 源代码的文件名必须与公共类的名字相同,并以.java 作为扩展名。
- 从命令行运行上面这段代码时,分两步:
javac FirstSample.java和java FirstSample,值得注意的是第二步没有后缀.class 。
注释
三种:
// First
/*
Second
Second
/
/**
* Third, can automatically generate documentation.
*/
数据类型
Java 一共有8种基本类型,其中4种整型、2种浮点型、1种用于表示Unicode 编码的字符单元的字符类型char 和boolean 类型。Java 有一个能表示任意精度的算术包,称为大数值。但它其实是一个Java 对象,并不是一种Java 数据类型
整型
| 类型 | 存储需求 | 取值范围 |
|---|---|---|
| int | 4字节 | -2147483648 ~ 2147483647 |
| short | 2字节 | -32768 ~ 32767 |
| long | 8字节 | -9223372036854775808 ~ 9223372036854775807 |
| byte | 1字节 | -128 ~ 127 |
长整型数值有一个后缀L或l(如4000000000L)。十六进制数值有一个前缀0x或0X(如0xCAF5)。八进制有一个前缀0,如010表示8,但容易混淆,故不推荐使用。加上前缀0b或0B表示二进制数(如0b1001表示9)。
浮点类型
| 类型 | 存储需求 | 取值范围 |
|---|---|---|
| float | 4字节 | 有效位数6 ~ 7位 |
| double | 8字节 | 有效位数15位 |
一般使用double 类型,float 类型的数值有一个后缀F或f(如3.14f)。
会导致溢出和出错情况的三个特殊的浮点数值:
- 正无穷大
- 负无穷大
- NaN
常量Double.POSITIVE_INFINITY、Double.NEGATIVE_INFINITY 和 Double.NaN 分别表示这三个特殊值,要检测一个特定值是否等于Double.NaN:
if (x == Double.NaN) // 不可以,结果永远是false
if (Double.isNaN(x)) // 则可以
浮点值不适用于无法接受误差的金融计算中,例如System.out.println(2.0-1.1);打印出的结果为:0.8999999999999999,而并非0.9.这种舍入误差的主要原因是浮点数值采用二进制系统表示,而在二进制系统种无法精确地表示分数1/10。如果在数值中不允许任何舍入误差,应该使用BigDecimal 类。
char类型(码点与代码单元)
要弄清char 类型,就必须了解Unicode 编码机制,一个char 类型的大小为16bit。Unicode 解决了不同编码方案下有可能产生不同的字符的问题。但是随着加入的字符越来越多,16位已经不能完全表示Unicode 中的字符。
码点是指一个编码表中的某个字符对应的代码值。在Unicode 标准中,码点采用十六进制书写,并加上前缀U+,例如U+0041就是拉丁字幕A的码点。Unicode 的码点可以分成17个代码级别。第一个代码级别称为基本的多语言级别,码点从U+0000到U+FFFF,其中包括经典的Unicode 代码;其余的16个级别码点从U+10000到U+10FFFF,其中包括一些辅助字符。
UTF-16编码采用不同长度的编码表示所有Unicode 码点。在基本的多语言级别中,每个字符用16位表示,通常被称为代码单元;而辅助字符采用一对连续的代码单元进行编码。这样构成的编码值落入基本的多语言级别中空闲的2048字节内,通常被称为替代区域[U+D800 ~ U+DBFF用于第一个代码单元,U+DC00 ~ U+DFFF用于第二个代码单元]。这样设计的巧妙之处在于我们可以从中迅速地知道一个代码单元是一个字符的编码,还是一个辅助字符的第一或第二部分。
[JAVA学习笔记]JAVA基本程序设计结构的更多相关文章
- [java学习笔记]java语言核心----面向对象之this关键字
一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理: 代表的是当前对象. this就是所在函数 ...
- [java学习笔记]java语言核心----面向对象之构造函数
1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用: 给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...
- [Java学习笔记] Java异常机制(也许是全网最独特视角)
Java 异常机制(也许是全网最独特视角) 一.Java中的"异常"指什么 什么是异常 一句话简单理解:异常是程序运行中的一些异常或者错误. (纯字面意思) Error类 和 Ex ...
- Java学习笔记 -- Java定时调度工具Timer类
1 关于 (时间宝贵的小姐姐请跳过) 本教程是基于Java定时任务调度工具详解之Timer篇的学习笔记. 什么是定时任务调度 基于给定的时间点,给定的时间间隔或者给定的执行次数自动执行的任务. 在Ja ...
- 我的Java学习笔记-Java面向对象
今天来学习Java的面向对象特性,由于与C#的面向对象类似,不需详细学习 一.Java继承 继承可以使用 extends 和 implements 这两个关键字来实现继承. extends:类的继承是 ...
- Java学习笔记-Java概述和环境配置
基础常识 软件:一系列按照特定顺序组织的计算机数据 和指令的集合 常见的软件: 系统软件:如:DOS,windows,Linux等 应用软件:如:扫雷,迅雷,QQ等 软件的出现实现了人与计算机之间的更 ...
- java学习笔记----java入门
java基础 一.java语言跨平台原理 1.什么是跨平台? 跨平台就是一个软件可以在不同的操作系统中运行,但是不需要对其修改.换句话说,java语言编写的软件在不做修改的情况下就能在不同的系统平台上 ...
- Java学习笔记-Java中的常用类
Java中有很多类是很常用的,此处列举System,Runtime,Date,Calendar,Math System System:类中的方法和属性都是静态的 字段摘要 static PrintSt ...
- Java学习笔记——MySQL创建表结构
一.创建/删除数据库. create database t14; drop database t14; use t14; 二.创建若干表用于测试 这里预留了几个坑,下面要填坑的.. /*创建学生表*/ ...
随机推荐
- HttpClientUtils:Http请求工具类
HttpClientUtils:Http请求工具类 Scala:HttpClientUtils Scala:HttpClientUtils import java.io.IOException imp ...
- 编写高性能Java代码的最佳实践
博客地址: http://blog.csdn.net/dev_csdn/article/details/79033972
- redis-服务器配置-主从
1.配置sentinel.conf -------------------------------------------------- port 26379 dir "/home/app/ ...
- python中如何添加模块导入路径?
python中自定义模块导入路径的方式主要有以下3种: (1)使用sys.path.append() 随着程序执行,会动态地添加模块导入的路径,但是程序执行结束后就会立即失效(临时性的) import ...
- JavaScript里处理数组的一些常用方法
修改器方法: 1.pop() 方法从数组中删除最后一个元素 pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值. let arr2 = ['zh ...
- BZOJ1951 古代猪文 【数论全家桶】
BZOJ1951 古代猪文 题目链接: 题意: 计算\(g^{\sum_{k|n}(^n_k)}\%999911659\) \(n\le 10^9, g\le 10^9\) 题解: 首先,根据扩展欧拉 ...
- Codeforces Round #496 (Div. 3) D. Polycarp and Div 3 (数论)
题意:给你一个巨长无比的数,你可以将这个数划成任意多个部分,求这些部分中最多有多少个能被\(3\)整除. 题解:首先我们遍历累加每个位置的数字,如果某一位数或者累加和能被\(3\)整除(基础知识,不会 ...
- C# EventWaitHandle类解析
EventWaitHandle 类用于在异步操作时控制线程间的同步,即控制一个或多个线程继行或者等待其他线程完成. 构造函数 EventWaitHandle(bool initialState, Ev ...
- spring再学习之AOP实操
一.spring导包 2.目标对象 public class UserServiceImpl implements UserService { @Override public void save() ...
- bzoj4355 Play with sequence(吉司机线段树)题解
题意: 已知\(n\)个数字,进行以下操作: \(1.\)区间\([L,R]\) 赋值为\(x\) \(2.\)区间\([L,R]\) 赋值为\(max(a[i] + x, 0)\) \(3.\)区间 ...