【阅读笔记】Java核心技术卷一 #1.Chapter3
3 Java的基本程序设计结构
3.1 一个简单的 Java 应用程序(略)
3.2 注释(略)
3.3 数据类型
8种基本类型
byte,short,int,long
float,double
char(Unicode)
boolean
3.4 变量
声明,初始化,赋值,final
3.5 运算符
java.lang.Math
///API
Math.sqrt(double x);
Math.pow(double x, double a);
Math.floorMod(position+adjustment, 12);
Math.sin
Math.cos
Math.tan
Math.atan
Math.atan2
Math.exp
Math.log
Math.log10
Math.PI
Math.E
long Math.round(double)
了解:StrictMath类
- 枚举类型
enum Size {SMALL, MEDIUM, LARGE, EXTRA_LARGE}
Size size = Size.SMALL;
3.6 字符串
码点和码元
要想得到第 i 个码点
int index = str.offsetByCodePoints(0, i) ;
int cp = str.codePointAt(index);
java.lang.StringBuilder
int length();
StringBuilder append(String str);
StringBuilder append(Char c);
void setCharAt(int i, char c);
StringBuilder insert(int offset, String str);
StringBuilder insert(int offset, Char c);
StringBuilder delete(int startindex, int endlndex);
String toString();
3.7 输入输出
3.7.1 读取输入
java.util.Scanner
Scanner in = new Scanner(System.in);
///API
Scanner (InputStream in);
String nextLine();
String next();
int nextInt();
double nextDouble();
boolean hasNext();
boolean hasNextInt();
boolean hasNextDouble();
java.io.Console
Console cons = System.console();
String username = cons.readLine("Username: " );
char[] passwd = cons.readPassword ("Password: ");
///API
static char [] readPassword(String prompt, Object... args);
static String readLine(String prompt , Object... args);
//显示字符串 prompt 并且读取用户输入,直到输入行结束。args参数可以用来提供输人格式
3.7.2 格式化输出
- System.out.printf(); 类似于C语言的
printf() - 可以使用静态的
String.format方法创建一个格式化的字符串,而不打印输出String message = String.format("Hello, %s. Next year, you'll be %d", name, age);
3.7.3 文件输入与输出
读取:使用文件对象构造Scanner。
Scanner in = new Scanner(Paths.get("myflle.txt"), "UTF-8");
写入:PrintWriter,可以像输出到System.out一样使用print、println以及printf命令。覆盖写入
PrintWriter out = new PrintWriter("myfile.txt", " UTF-8");
out.print("test str");
// 必须flush或者close才能写入
// out.flush();
out.close();
3.8 控制流程
- 不能在嵌套的两个块中声明同名的变量
- case标签只能是:
- char byte short int 的常量表达式
- 枚举常量
- 字符串字面量
- 带标签的continue和break,可以跳出多重嵌套
3.9 大数值
java.math.BigInteger 大整数
///API
BigInteger add(BigInteger other);
BigInteger subtract(BigInteger other)
BigInteger multiply(BigInteger other);
BigInteger divide(BigInteger other);
BigInteger mod(BigInteger other);
int compareTo(BigInteger other);
static BigInteger valueOf(long x);
java.math.BigDecimal 大实数
///API
BigDecimal add(BigDecimal other);
BigDecimal subtract(BigDecimal other)
BigDecimal multiply(BigDecimal other);
BigDecimal divide(BigDecimal other, RoundingMode mode);
BigDecimal mod(BigDecimal other);
int compareTo(BigDecimal other);
static BigDecimal valueOf(long x);
static BigDecimal valueOf(long x, int scale);
3.10 数组
数组是一种数据结构。
foreach循环:for (variable : collection ) statement
int[] a = new int[10];
// 赋值
// foreach
for (int element : a)
System.out.println(element);
System.out.println(Arrays.toString(a));
java.util.Arrays
/// API
static String toString (type[] a);
static type copyOf(type[] a, int length);
static type copyOfRange(type[] a, int start , int end);
static void sort(type[] a);
static int binarySearch(type[] a, int start, int end, type v);
static void fill(type[] a, type v);
static boolean equals(type[] a, type[] b);
小例子:从100个数中抽出10个不重复的数
多维数组
int[][] a = new int[10][5];
// 赋值
for(int[] row : a)
for(int value : row)
System.out.println(value);
System.out.println(Arrays.deepToString(a));
int[][] odds = new int[N + 1][];
for (int i = 0; i <= N; i++)
odds[i] = new int[i + 1];
【阅读笔记】Java核心技术卷一 #1.Chapter3的更多相关文章
- 【阅读笔记】Java核心技术卷一 #0
这是一篇备忘性质的读书笔记,仅记录个人觉得有用的知识点 本文作为一个目录索引,部分章节跳过 吐槽:此书中文翻译有不少地方不太通顺,这种情况我要把英文版对应的部分也读一遍才能明白(说实话,英文里的从句表 ...
- java核心技术卷一
java核心技术卷一 java基础类型 整型 数据类型 字节数 取值范围 int 4 +_2^4*8-1 short 2 +_2^2*8-1 long 8 +_2^8*8-1 byte 1 -128- ...
- 对《Java核心技术卷一》读者的一些建议
<Java核心技术卷一>是唯一可以和<Java编程思想>媲美的一本 Java 入门书.单从技术的角度来看,前者更好一些.但上升到思想层面嘛,自然后者更好,两者的偏重点不同. 思 ...
- 读《java核心技术卷一》有感
过去一个多月了吧.才囫囵吞枣地把这书过了一遍.话说这书也够长的,一共706页.我从来不是个喜欢记录的人,一直以来看什么书都是看完了就扔一边去,可能有时候有那么一点想记录下来的冲动,但算算时间太紧,很多 ...
- 【阅读笔记】Java核心技术卷一 #6.Chapter8
8 泛型程序设计 8.1 为什么要使用泛型程序设计 类型参数(type parameters)(E.T.S...) 通配符类型(wildcard type)(?) 注意这两者用法用处并不同. 8.2 ...
- 【阅读笔记】Java核心技术卷一 #5.Chapter7
7 异常.断言和日志 在 Java 中,如果某个方法不能够采用正常的途径完整它的任务,就可以通过另外一个路径退出方法. 在这种情况下,将会立刻退出,并不返回任何值,而是抛出(throw)一个封装了错误 ...
- 【阅读笔记】Java核心技术卷一 #4.Chapter6
6 接口.lambda 表达式与内部类 6.1 接口 6.1.1 接口概念 接口绝不能含有实例域:但在接口中可以定义常量,被自动设为 public static final 接口中的所有方法自动地属于 ...
- 【阅读笔记】Java核心技术卷一 #3.Chapter5
5 继承 5.1 类.超类和子类 5.1.1 定义子类 超类(superclass)和子类(subclass), 基类(base class)和派生类(derived class), 父类(paren ...
- 【阅读笔记】Java核心技术卷一 #2.Chapter4
4 对象和类 4.1 面向对象程序设计概述(略) 4.2 使用预定义类 java.time.LocalDate static LocalDate now(); static LocalDate of( ...
随机推荐
- spring boot 并发请求,其他系统接口,丢失request的header信息【多线程、线程池、@Async 】
场景:一次迭代在灰度环境发版时,测试反馈说我开发的那个功能,查询接口有部分字段数据是空的,后续排查日志,发现日志如下: feign.RetryableException: cannot retry d ...
- Python使用websocket调用语音识别,语音转文字
@ 目录 0. 太长不看系列,直接使用 1. Python调用标贝科技语音识别websocket接口,实现语音转文字 1.1 环境准备: 1.2 获取权限 1.2.1 登录 1.2.2 创建新应用 1 ...
- C# 设置Word文本框中的文字旋转方向
在Word中可插入文本框,默认情况下插入的文本框中的文字方向为横向排列,对于一些特殊文档的设计要求,需要改变文字方向,如本次测试中的文档排版为考生试卷类型,考生信息栏的内容为下图中的这种, 本文将以C ...
- C#构造函数中:this()的作用
通俗来说,可以说是构造函数的继承 (1) :this()用来继承无参时的构造函数,例如下面代码 static void Main(string[] args) { AA aA = new AA(&qu ...
- golang 写文件--详细解释
1,不覆盖指定的文件 先看代码怎么写,下面再具体解释. func writeToFile(msg string) { f, err := os.OpenFile("/home/mingbai ...
- Object 中的默认方法
1.public final native Class<?> getClass() getClass方法,返回该实例的java.lang.Class类,例如 Object obj = ne ...
- php 经典的算法题-偷苹果
有5个人偷了一堆苹果,准备在第二天分赃.晚上,有一人遛出来,把所有菜果分成5份,但是多了一个,顺手把这个扔给树上的猴了,自己先拿1/5藏了.没想到其他四人也都是这么想的,都如第一个人一样分成5份把多的 ...
- 使用Hugo框架搭建博客的过程 - 功能拓展
前言 本文介绍一些拓展功能,如文章页面功能增加二级菜单,相关文章推荐和赞赏.另外,使用脚本会大大简化写作后的上传流程. 文章页面功能 这部分功能的拓展主要是用前端的JS和CSS,如果对前端不了解,可以 ...
- pod调度
Pod调度 在默认情况下,一个pod在哪个node节点上运行,是由scheduler组件采用相应的算法计算出来的,这个过程是不受人工控制的. 但是在实际过程中,这并不满足需求,因为很多情况下,我们想控 ...
- ARTS第七周
补上.瞎忙,看来还是效率的问题. 1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评至少一篇英文技术文章3.Tip:学习至少一个技术技巧4.Share:分享 ...