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一样使用printprintln以及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的更多相关文章

  1. 【阅读笔记】Java核心技术卷一 #0

    这是一篇备忘性质的读书笔记,仅记录个人觉得有用的知识点 本文作为一个目录索引,部分章节跳过 吐槽:此书中文翻译有不少地方不太通顺,这种情况我要把英文版对应的部分也读一遍才能明白(说实话,英文里的从句表 ...

  2. java核心技术卷一

    java核心技术卷一 java基础类型 整型 数据类型 字节数 取值范围 int 4 +_2^4*8-1 short 2 +_2^2*8-1 long 8 +_2^8*8-1 byte 1 -128- ...

  3. 对《Java核心技术卷一》读者的一些建议

    <Java核心技术卷一>是唯一可以和<Java编程思想>媲美的一本 Java 入门书.单从技术的角度来看,前者更好一些.但上升到思想层面嘛,自然后者更好,两者的偏重点不同. 思 ...

  4. 读《java核心技术卷一》有感

    过去一个多月了吧.才囫囵吞枣地把这书过了一遍.话说这书也够长的,一共706页.我从来不是个喜欢记录的人,一直以来看什么书都是看完了就扔一边去,可能有时候有那么一点想记录下来的冲动,但算算时间太紧,很多 ...

  5. 【阅读笔记】Java核心技术卷一 #6.Chapter8

    8 泛型程序设计 8.1 为什么要使用泛型程序设计 类型参数(type parameters)(E.T.S...) 通配符类型(wildcard type)(?) 注意这两者用法用处并不同. 8.2 ...

  6. 【阅读笔记】Java核心技术卷一 #5.Chapter7

    7 异常.断言和日志 在 Java 中,如果某个方法不能够采用正常的途径完整它的任务,就可以通过另外一个路径退出方法. 在这种情况下,将会立刻退出,并不返回任何值,而是抛出(throw)一个封装了错误 ...

  7. 【阅读笔记】Java核心技术卷一 #4.Chapter6

    6 接口.lambda 表达式与内部类 6.1 接口 6.1.1 接口概念 接口绝不能含有实例域:但在接口中可以定义常量,被自动设为 public static final 接口中的所有方法自动地属于 ...

  8. 【阅读笔记】Java核心技术卷一 #3.Chapter5

    5 继承 5.1 类.超类和子类 5.1.1 定义子类 超类(superclass)和子类(subclass), 基类(base class)和派生类(derived class), 父类(paren ...

  9. 【阅读笔记】Java核心技术卷一 #2.Chapter4

    4 对象和类 4.1 面向对象程序设计概述(略) 4.2 使用预定义类 java.time.LocalDate static LocalDate now(); static LocalDate of( ...

随机推荐

  1. SpringBoot代码与jar包分离部署

    第一步,打出带有jar包的SpringBoot工程 首先配置pom.xml文件 <build> <finalName>demo</finalName> <pl ...

  2. springboot bean的循环依赖实现 源码分析

    springboot bean的循环依赖实现 源码分析 本文基于springboot版本2.5.1 <parent> <groupId>org.springframework. ...

  3. 安卓开发(3)—1— Activity

    安卓开发(3)-1- Activity 3.1 Activity是什么: 在前面安卓概述中有提到,Activity是Android开发中的四大组件,所有在app里可以看到的东西都是Activity里面 ...

  4. CORS跨源资源共享概念及配置(Kubernetes Ingress和Spring Cloud Gateway)

    我最新最全的文章都在南瓜慢说 www.pkslow.com,欢迎大家来喝茶! 1 跨源资源共享CORS 跨源资源共享 (CORS) (或通俗地译为跨域资源共享)是一种基于HTTP 头的机制,该机制通过 ...

  5. python画图库及函数,绘制图片从文件提取出来的数据集转化为int,不然作为坐标轴的时候因为是字符串而无法排序

    转化int:  

  6. unity调用安卓方法实现安装apk文件(androidx)

    原文链接:点击打开 unity想要实现安装apk文件需要与安卓通讯,所以需要自己来实现安卓代码. 第一步先要新建一个安卓项目提供给unity来使用,我这里使用的工具是android studio4.1 ...

  7. 聊一聊我在 B 站自学 Java 的经历吧

    Hey guys ,这里是 cxuan,欢迎你收看我最新一期的文章. 这是一篇鸽了很久的文章...... 事情还要从上回说起...... 我爱 B 站! 这篇文章我汇总了 B 站上计算机基础(操作系统 ...

  8. filebeat 提取获取massage字段 利用pipeline grok 7.12

    嘴巴会说(情商)比技术有时候更重要! 水平有限,希望你看完有所收获! 背景 1,filebeat直连Elasticsearch,需要对massage提取一些特定的字段. 2,如果你对数据需要处理的比较 ...

  9. CRM客户管理软件如何帮助销售?

    对现代企业来说,销售团队的作用是举足轻重的.这与企业的利益密切相关,因此提高企业的销售绩效是企业的首要目标.CRM客户管理软件能够帮助企业做到以客户为中心,构建及改善客户关系,帮助企业优化业务流程,实 ...

  10. 超详细的原生JavaScript轮播图(幻灯片)的制作

    本次轮播图的制作主要分为3个部分,分别是:设置定时器自动轮播:点击左右切换按钮轮播:下方点击按钮轮播.具体实现步骤如下: (效果图) html部分代码如下: <div class="s ...