CoreJava 笔记总结-第三章 Java的基本程序设计结构
CoreJava 笔记总结
文章目录
- CoreJava 笔记总结
- 第三章 Java的基本程序设计结构
- 数据类型
- 1. 整型
- 2. 浮点类型
- 3. char类型
- 4. boolean类型
- 变量与常量
- 1. 变量
- 2. 常量
- 3. 枚举类型
- 运算符
- 关系和boolean运算符
- 数学函数与常量
- 强制类型转换
- 字符串
- 空串与null串
- 码点与代码单元
- 构建字符串
- 输入与输出
- 读取输入
- 格式化输出
- 文件输入与输出
- 控制流程
- 条件语句
- 循环
- 确定循环
- 多重选择
- 中断控制流程的语句
- 大数
- ==**数组**==
- 声明数组
- 访问数组元素
- ==for each循环==
- 数组拷贝
- 命令行参数
- 数组排序
- 多维数组
- 不规则数组
第三章 Java的基本程序设计结构
punlic
访问修饰符- 类名: 以大写字母开头的名词, 骆驼命名法
- 源代码的文件名字必须与公共类名字相同
main
方法必须声明为public
- 每个
java
应用程序都必须有一个main
方法
public class ClassName
{public static void main(String[] args){program statements}
}
java
通用语法:object.method(parameters)
- 注释:
/* xxx */
或者//xxx
或者/** xxx */
数据类型
1. 整型
- int (20亿左右 29) 4字节
- short 最大32767
- long
- byte -128~127
2. 浮点类型
float 有后缀f/F 如
3.14F
double双精度,
3.14
默认为双精度, 也可以写为3.14d
正无穷 负无穷 NaN(不是一个数字) Double.POSITIVE_IFINITY
Double.NEGATIVE_IFINITY
Double.NaN
3. char类型
- char类型字面量的值单引号括起来, e.g.
'A'
4. boolean类型
- 布尔类型只有两个值
true
,false
变量与常量
1. 变量
所有
java
语句以分号结束每个变量都有一个
type
:double, int...
变量名: 一个由字母开头, 并且由字母,数字构成的序列
以下是合法声明:
int i, j; Box box; Box aBox; //初始化 int vacationDay = 12; double salary = 6400.0
var: 对于局部变量, 该关键字可以代替其类型
2. 常量
- final: 指示常量
- 常量名: 全部使用大写
- 类常量:
public static final double CM_PER_INCH = 2.54
, 定义于main
方法外部,public
代表其他类也可以使用
3. 枚举类型
enum Size{SMALL, MIDDLE, LARGE, EXTRA_LARGE}
运算符
+, -, *, /, %
如果
public static strictfp void main(String[] args)
, 那么这个类中所有方法使用严格的浮点计算+=, -=, *=, %=, ++, --
关系和boolean运算符
==, !=
<, >, <=, >=
&&, ||, !
- 三元运算符
xx ? xx : xx
x < y ? x : y
会返回较小的一个
- 位运算符:
&, |, ^, ~, <<, >>
P43 - 运算符优先级别P44
数学函数与常量
- 平方根:
Math.sqrt(4) --> 2
- 幂运算:
Math.pow(x, a) -->
xa - 三角函数:
Math.sin, Math.cos, Math.tan, Math.atan, Math.atan2
- 指数函数,对数函数:
Math.exp, Math.log, Math.log10
- Π和e常量:
Math.PI, Math.E
- 静态导入:
import static java.lang.Math.*
, 导入后就不用带Math
强制类型转换
截断小数:
double x = 3.14159; int nx = (int)x;
舍入运算:
double x = 1.145; int nx = (int)Math.round(x);
得到最接近的整数,
round
返回long
字符串
- 字串:
s.substring(fromIndex, toIndex);
- 拼接:
s1 + s2
join:
把多个字符串放在一起, 用一个界定符分隔String.join("/", "S", "M", "L");
repeat:
String s = "hello".repeat(2)
s = "hellohello";
- 不可变字符: 利用拼接改变字符串对象
- 字符串不是字符串数组, 不是
char s[] = 'hello'
, 可以理解为char* s = 'hello'
- 检测字符串是否相等:
s.equals(t)
- 忽略大小写:
"Hello".equalsIgnoreCase("hello")
- 忽略大小写:
- == 运算符只能确定两个字符串是否在同一个位置上
compareTo:
类似于C的strcmp
函数, java用s.compareTo(t) == 0...
空串与null串
- 判空:
s.length() == 0 或者 s.equals("")
- 判null:
s == null
码点与代码单元
length
: 返回代码单元数量codePointCount:
返回码点数量int cpCount = s.codePointCount(0, s.length());
- P48…
构建字符串
StringBuilder s = new StringBuilder(); s.append(ch); s.append(str);String completedString = s.toString();
输入与输出
读取输入
构造一个标准输入流
import java.util.*;
Scanner in = new Scanner(System,in); String name = in.nextline(); String firstName = in.next(); int age = in.nextInt();
密码: 使输入不可见
Console cons = System.console(); String username = cons.readLine("User name: "); char[] password = cons.readPassword("Password: ");
格式化输出
和C语言类似
System.out.printf("%8.2f", 333.333333);
用于printf的转换符:
d, x, o, g, e, f, s, c
增加分隔符
System.out.printf("%,.2f", 1000.0/3.0);
文件输入与输出
读取文件
Scanner in = new Scanner(Path.of("myfile.txt"), StandardCharset.UTF_8);
写入文件
PrintWriter out = new PrintWriter("myfile.txt", StandarsCharset.UTF_8);
找到启动目录位置
String dir = System.getProperty("user.dir");
避免用一个不存在的文件构造
Scanner
:public static void main(String[] args) throws IOException....
控制流程
条件语句
if (condition) {statement1;statement2; } else {statement1;statement2; }
循环
while (condition){statement1;.... }
do{statement1;.... }while(condition);
确定循环
for(int i = 0; i < 100; i++)System.out.print(i )
多重选择
switch(choice) {case 1:...break;case 2:...break;...default:...break; }
中断控制流程的语句
不带标签的break:
while(i < 100) {...break; }
带标签的break语句, 用于跳出多重嵌套的循环语句:
... read_data; while(i < 1000){for(...){...break read_data;} }
continue语句, 将控制转移到最内层循环的首部
while(x < y) {System.out.print(x);x = in.nextInt();if (x < 0)continue;... }
大数
import java.math.*;
BigInteger , BigDecimal
实现任意精度的整数和浮点数运算将普通树转换为大数:
BigInteger a = BigInteger.valueOf(100);
构造一个大数:
BigInteger big = new BigInteger("14862301485623021546230");
- 大数的运算:
+ BigInteger c = big.add(b); // c = big + b;
* BigInteger d = c.multiply(b.add(BigInteger.valueof(2))); //d = c * (b + 2);
/ BigInteger e = d.divide(d);
- substract , % mod
数组
声明数组
int[] a
,int a[]
int[] a = new int[100];
var a = new int[100];
int[] smallPrimes = {2, 3, 5, 7, 11, 13}
不需要new
, 也不需要指定长度new int[0];
访问数组元素
数组长度:
a.length
初始化
var a = new int[100]; for(int i = 0; i < 100; i++)a[i] = i + 1;
for each循环
格式:
for(variable: collection) statement
这里的
collection
, 必须是实现了Iterable 接口的内对象或者是数组for(int elem: a)System.out.print(elem)
打印数组中的所有值
System.out.println(Arrays.toString(a));
数组拷贝
允许将一个数组变量拷贝到另一个数组变量, 这时两个变量将引用同一个数组
int[] a = b; b[10] = 2; // now a[10] == 2
全部拷贝的方法:
int[] b = Arrays.copyOf(a, a.length);
多余元素置0或false, 第二个参数太小就拷贝前面的元素
命令行参数
- 命令行调用程序
Message.java
java Message -g cruel world
- 这里的
args[0] == "-g"; args[1] = "cruel"; ...
- 程序名没有存在args数组中
数组排序
Arrays.sort(a);
Arrays.binarySearch(a, startIndex, endIndex, value);
多维数组
double[][] a;
int[][] a = {{1, 2, 3},{4, 5, 60}, }
for each循环:
for(double[] row: a)for(double[] col: row)...
打印输出二维数组:
System.out.println(Arrays.deepToString(a));
不规则数组
int[][] a = new int[N][]; for(int i = 0; i < N; i++)a[i] = new int[i+1];
CoreJava 笔记总结-第三章 Java的基本程序设计结构相关推荐
- 【Java核心技术阅读笔记】第三章 Java的基本程序设计结构
1.注释 // /* */ 不能嵌套,因为要注释的代码块中可能包含*/界定符 /** */ 可以用来自动地生成文档(?不懂) 2.数据类型 Java是一种强类型语言. 8种基本数据类型:4种整型, ...
- Java核心技术 卷1 基础知识 学习笔记——第三章 java的基本程序设计结构
1. 一个正整数除以0的结果为正无穷大,0/0或者负数的平方根的结果为NaN(不是一个数字): if(x==Double.NaN)//is never true,所有非数值的值都认为是不同的 if(D ...
- Core Java 第三章 Java基本的程序设计结构
3.1 1.关键字class后紧跟类名(类名以大写字母开头,多个单词每个单词首字母大写,可接数字). 2.源代码文件名要与公有类名一致,并用.java做后缀名. 3.运行编译程序时,Java虚拟机从指 ...
- 《Java核心技术 ---- 基础知识》 ---- 第三章 java的基本程序设计结构
一. java命名规则 类名 - 以大写字母开头的名词(骆驼命名法) 变量名 二.注释 行内注释 // 文本注释 /* */ 文本块注释 /** */ 三.数据类型 共8种基本类型,4种整型.2种浮点 ...
- 第三章 Java的基本程序设计结构
目录 3.1 一个简单的Java应用程序 3.2 注释 3.3 数据类型 3.3.1 整型 3.3.2 浮点型 3.3.3 char类型 3.3.4 Unicode和char类型 3.3.5 bool ...
- 【Java核心计算 基础知识(第9版)】第3章 Java的基本程序设计结构
本章要点 - 一个简单的Java应用程序 - 注释 - 数据类型 - 变量 - 运算符 - 字符串 - 输入输出流 - 控制流 - 大数值 - 数组 3.1 一个简单的Java应用程序 上图是一个最简 ...
- 读《Java核心技术 卷I》有感之第3章 Java的基本程序设计结构
其实写这些东西挺累的,看的时候觉得很容易理解,写起来要将思想转换为文字有点小难受 3.1 一个简单的Java应用程序 定义了几个定理,具体如下: 如果当前源代码需要作为起始函数,那么需要保证其中的 ...
- 第三章 Java Servlet基础
第三章 Java Servlet基础 3.6.2 转发 1.获得RequestDispatcher对象 2.RequestDispatcher对象调用forward()方法实现转发 请求转发工作原理 ...
- 机器学习理论《统计学习方法》学习笔记:第三章 k近邻法
机器学习理论<统计学习方法>学习笔记:第三章 k近邻法 3 k近邻法 3.1 K近邻算法 3.2 K近邻模型 3.2.1 模型 3.2.2 距离度量 3.2.3 K值的选择 3.2.4 分 ...
最新文章
- vs2010 将.mc编译为.rc文件
- python中的self描述符__set__和__get__简单总结
- 使用.Net访问Office编程接口
- 第十三节:实际开发中使用最多的监视锁Monitor、lock语法糖的扩展、混合锁的使用(ManualResetEvent、SemaphoreSlim、ReaderWriterLockSlim)
- 这种反爬虫手段有点意思,看我破了它!
- oracle_jdbc新建实例,JDBC的操作步骤和实例
- 程序员别埋头苦干了,花时间学点薪资谈判技巧多赚一个亿可好?
- tf.train.slice_input_producer(转)
- Bailian4020 缺少的扑克牌【set】
- java学习笔记—标准连接池的实现(27)
- Telnet Sequence Diagram
- CH372或CH375的USB通讯问题解答
- hibernate 二级缓存 处理
- FTP服务器是什么【摘自IT百科】
- 15个好用的百度网盘搜索引擎
- weak_ptr介绍
- python疫情监控(爬虫+可视化)
- Python语言的动态性:运行时动态绑定,删除属性和方法
- 印象笔记Markdown思维导图
- Python一行代码能做什么,30个实用案例代码详解
热门文章
- 由于开发者通过接口修改了菜单配置_Android SDK开发艺术探索(四)个性化配置...
- 王道408数据结构——第七章 查找
- 全球最神秘的9大葡萄园...
- 世界上最美的40个小镇,你见过多少个?
- 托马斯反驳牛顿被骂,普朗克颜值过高遭上帝捉弄,狄拉克却因爱情成话痨
- 惊了!哆啦A梦里最能打的道具,居然真实存在!还打破了世界纪录,看完跪了....
- 一个常见的物理现象,直今还是未解之谜!
- 看OpenCV如何在python中实现图像检测!
- TensorFlow发布全新版本,又会带来哪些变革?
- 10分钟读懂人工智能、机器学习到底有什么关系