mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
816 字
3 分钟
Java核心技术卷 学习Day01
2022-07-08

java学习&复习,本文主要参照《Java核心技术卷》作为学习对象。

第一章 Java概述#

java白皮书

简单性 面向对象 分布式 健壮性 安全性 体系结构中立 可移植性 解释型 高性能 多线程 动态性

  • Java applet

在网页中运行的Java程序:applet

  • JavaScript与Java

除去名字二者并无关系。Java是强类型的,比JavaScript捕捉错误的能力更强

第二章 Java环境#

  • Java专业术语
术语名缩写解释
Java Development Kit(Java开发工具包)JDK编写Java程序的程序员使用的软件
Java Runtime Environment(Java 运行时环境)JRE运行Java程序的用户使用的软件
Server JRE(服务器 JRE)在服务器上运行 Java 程序的软件
Standard Edition(标准版)SE用于桌面或简单服务器应用的 Java平台
Enterprise Edition(企业版)EE用于复杂服务器应用的 Java平台
Micro Edition微型版)ME用于小型设备的 Java平台
Java FX用于图形化用户界面的一个备选工具包,在Java 11之前的某些Java SE 发布版本中提供
OpenJDKJava SE 的一个免费开源实现
Java2J2一个过时的术语,用于描述 1998~2006年之间的Java版本
Software Development Kit(软件开发工具包)SDK一个过时的术语,用于描述 1998~2006年之间的JDK
UpdateuOracle 公司的术语,表示 Java8之前的 bug修正版本
NetBeansOracle 公司的集成开发环境
  • Java安装&编译
# 配置环境变量
javac --version # 查看java版本
# 命令行编译
javac welcome.java
java welcome
  • 集成开发环境

Eclipse | IntelliJ IDEA | NetBeans

  • JShell

java即时运行

第三章 Java基本程序#

  • 驼峰命名

myClass

  • 注释
//注释
/*注释*/
/**
*自动生成文档
*注释
*/

1 数据类型#

  1. 整型
int4字节-2^32 ~ 2^32 - 1
short2字节-2^16 ~ 2^16 - 1
long8字节-2^64 ~ 2^64 - 1
byte1字节-2^8 ~ 2^8 - 1

1L/1l 长整型

0x 十六进制 0 八进制 0b/0B 二进制

  1. 浮点型
float4字节大约±3.40282347E+38F 6~7位
double8字节大约±1.79769313486231570E+308 15位

float 1f/1F

double 1D/1d

NaN <== 0/0 || sqrt(-n)

1356cde21b065d583b5134f9365d4fd4.png

  1. char类型
\\b 退格 \\t 制表 \\n 换行 \\r 回车 \\" 双引号 \\' 单引号 \\\\ 反斜杠
  • unicode

16位:初期

码点 U+十六位

17代码平面 1(基本多语言平面U+0000 ~ U+FFFF 经典Unicode代码)

2~17(包括辅助字符 U+10000 ~ U+10FFF)
  1. boolean类型

布尔类型 false || true 逻辑判断

2 变量#

  • 初始化

定义后需显式初始化,然后才能使用

final 常量 enum 枚举类型

3 运算符#

+ - * / %

  • Math

sqrt pow floorMod

三角函数 sin cos tan atan atan2

对数 exp log log10

pi与e近似值 Math.PI Math.E

可以import static java.lang.Math.*直接使用

  • 类型转换

低精度 -> 高精度 无损失

高精度 -> 低精度 有损失-强制类型转换 (int) | …

+= *= %= ...
k++ ++k
== != > < >= <=
&& ||
x?a:b //(true:false)
& | ^ ~ >> <<

运算符优先级

596cc3093bc2ab5fbb56aba8146403af.png

4 字符串#

"...".substring(l,r) //[l,r)
"a"+"b"
"a".repeat(3) //ans = "aaa"

String是不可变字符串

  • equals==

==判断字符串是否处于同一位置,只能判断可以共享的字面量,对于不可共享的+||substring会出现错误

使用a.equals(b)a.compareTo(b)用于字符串之间进行比较

  • 空串和null串

"" null

  • 码点与代码单元
int index = a.offsetByCodePoints(0,i); //第i个码点的位置
int cp = a.codePointAt(index); //获取第i个码点
//UTF-16部分字符需要两个代码单元,不能用charAt(pos)来获取
  • 字符串构建
StringBuilder builder = new StringBuilder(); //字符串构建器
builder.append('a');
builder.append(b);
String res = builder.toString(); //生成字符串

5 输入输出#

  • 输入
Scanner in = new Scanner(System.in);
in.nextLine(); //读取一行
in.next(); //以空格为分隔符读取
in.nextInt(); //获取int型
in.nextDouble(); //获取Double型
in.hasNext(); //判断输入中是否还有其他内容
  • 输出
System.out.println();
System.out.printf(“%8.2f",x); //类似于c中的printf
// d 十进制 x 十六进制 o 八进制 f 定点浮点数 e 指数浮点数
// s 字符串 c 字符 b 布尔 h 散列码
  • 文件输入输出
Scanner in = new Scanner(Path.of(""),StandardCharsets.UTF_8);
PrintWriter out = new PrintWriter("",StandardCharsets.UTF_8);

6 流程控制#

// 块作用域
{}
// 条件语句
if(){
}else if(){
}else {}
// 循环
while(...){} //先判断后执行
do ... while(...); //先执行后判断
for(int i = ..;i <= .. ; i++) {}
switch (...){
case ...://标签可以是char byte short int 枚举常量 字符串字面量
...
break;
...
default:
...
break;//直到遇到break才会停止
}
//break continue goto
//break tag; 类似于goto 跳到tag:处
  • 大数

BigInteger BigDecimal

使用valueOf(x)转换x

7 数组#

//数组定义
int[] a = new int[len];
int[] b = {1,2,3,4};
new Type[0] || new Type[] {} //长度为0的数组,不同于null
//for each循环
for(int i:a) ... //处理数组或其他元素集合
//- 数组拷贝
a = b;
a = Array.copyOf(b,copyLen);
//数组排序
Arrays.sort(a); //快排 Math.random() -> [0,1)
//多维数组
int[][] a = new int[lenA][lenB];
a = {
{...},
{...}
};
for(int[] i:a)
for(int j:i)
...
//不规则数组
int[][] a = new int[N][]; //包含N个指针的数组
a = {...};
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Java核心技术卷 学习Day01
https://dreaife.tokyo/cn/java-core-tech-day1/
作者
dreaife
发布于
2022-07-08
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

相关文章 智能推荐
1
Java核心技术卷 学习Day02
cs-base 本文主要讨论Java的核心技术,包括面向对象编程的基本概念、类的定义与使用、预定义类如LocalDate的操作、自定义类的构造与封装、静态方法与字段、包的管理、JAR文件的创建与使用,以及文档注释的编写技巧。强调了数据私有化、初始化、类设计原则等重要设计技巧。
2
HTML学习
FRONTEND HTML学习涵盖了文档结构、文本标签、图片、音频和视频、超链接、表单、列表、表格、语义标签和特殊符号等基本概念。重要元素包括<html>、<head>、<body>、<div>、<span>、<img>、<audio>、<video>、<form>等,提供了创建网页所需的基础知识和示例代码。
3
java面试基础
cs-base Java语言的特点包括简单易学、面向对象、平台无关性、多线程支持、可靠性和安全性。Java SE是基础版,适合桌面应用,Java EE是企业版,适合复杂的企业级应用。JVM、JDK和JRE的区别在于JVM运行字节码,JDK是开发工具包,JRE是运行环境。Java使用字节码提高效率,支持编译与解释并存。异常处理分为Checked和Unchecked,使用try-catch-finally结构。泛型增强代码可读性,反射提供运行时分析能力。序列化用于对象持久化,IO流分为字节流和字符流,设计模式如装饰器和适配器在IO中应用广泛。
4
java Atomic原子类&&常见并发容器
cs-base 介绍了Java中的原子类及常见并发容器,包括基本类型的原子类(如AtomicInteger、AtomicLong、AtomicBoolean)、数组类型的原子类、引用类型的原子类以及对象属性修改类型的原子类。还详细讲解了ConcurrentHashMap、CopyOnWriteArrayList、ConcurrentLinkedQueue、BlockingQueue和ConcurrentSkipListMap等并发容器的特性和使用场景。
5
Java IO
cs-base Java IO 涉及输入输出流的基本概念,包括字节流和字符流的分类及其常用类,如 InputStream、OutputStream、Reader 和 Writer。字节流用于处理原始字节数据,而字符流则用于处理字符数据。缓冲流通过减少 IO 操作次数提高性能,适配器模式和装饰器模式在 IO 流中广泛应用,以增强功能和协调不同接口。Java 的 IO 模型包括同步阻塞 IO、非阻塞 IO 和异步 IO,各自适用于不同的应用场景。

目录