栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java核心技术卷Ⅰ(一)基础回顾(前三章)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java核心技术卷Ⅰ(一)基础回顾(前三章)

前言:准备深入学习java后开始阅读java核心技术卷Ⅰ,由于此前学习过java面向对象程序设计,卷Ⅰ的前几章有很多重复的内容,故此读书笔记只记录了补充内容。

(前三章)

一.String

1.“”不等于null

2.字串提取:

String s="hello";
String e=s.substring(0,3);
//输出为“Hel”

3.码点是指一个编码表中的某个字符对应的代码值。Unicode的码点分为17个代码级别,第一个级别是基本的多语言级别,码点从U+0000——U+FFFF,其余的16个级别从U+10000——U+10FFFF,其中包括一些辅助字符。

在计算机存储和网络传输时,码点值(即字符编号)被映射到一个或多个码元(Code Unit代码单元、编码单元)。码元可理解为字符编码方式CEF(Character Encoding Form)对码点值进行编码处理时作为一个整体来看待的最小基本单元。大多数常用的Unicode字符使用一个代码单元就可以表示,而辅助字符需要一对代码单元表示。

charAt(int index)返回给定位置代码单元。

codePointAt(int index)返回码点

上面给出的一些概念用以说明最好不要使用char类型,例如某些特殊字符有两个代码单元,对其调用charAt(1),得到的不是下一个字符,而是该特殊字符的第二个代码单元。

4.遍历一个字符串并且依次查看每一个码点用codePoints方法,他会生成一个int值的流,每个int值对应一个码点,可以将其转换为一个数组再完成遍历。

int[] codePoints=str.codePoints().toArray()//转换后生成数组

//下面为将码点数组转换为字符串,使用对应的构造函数
String str=new String(codePoints,0,codePoints.length)

5.StringAPI部分

replace(顺序 旧字符串,顺序 新字符串)

trim()返回一个新字符串,该字符串删除了原始字符串头部和尾部的空格。

6.StringBuilder

直接上api:append(string)、append(char)

setCharAt(int i,char c)把i位置的变成c

insert(int ,string/char)在i位置后插入

delete(i,j)删除i至j-1

二,输入输出

1.读取输入:创造一个scanner对象,并与标准输入流system.in关联

Scanner sc =new Scanner(System.in);

scanner的一些api:next()读取下一个单词(以空格作为分隔符)

boolean hasNext()输入中是否还有其他单词,hasNextInt是否还有表示整数的下一个字符序列。

2.scanner类的输入是可见的,所以不适合从控制台读取密码,Console类可以实现这个目的

Console cons = System.console();
String username=cons.readLine("user name");/
char[] passwd=cons.readPassword("passwird:");

3.格式化输出:printf(“%8.2f”,x)用8个字符的宽度和小数点后两个字符的精度打印x

%字符开始的格式说明符都用相应的参数替换,尾部的转换符表明格式化的数值类型。注意可以使用s转换符格式化任意的对象,底层原理为实现了Formaattable接口的对象都将调用formatTo方法,否则将调用toString方法。

转换符tx/Tx为旧代码用于表示实践,例如System.out.printf("%tc",new Date());

x=c表示完整的时间,x不同可以表示不同形式的时间

4.文件输入与输出:

Scanner in =new Scanner(Path.get(("myfile.txt"),"UTF-8");

想要写入文件的话需要构建一个PrintWriter对象,在构造方法中只需要提供文件名,如果文件不存在就创建该文件,可以使用print、println、printf等命令。如果scanner的构造方法里直接写入文件名,会被认为是一个字符串,需要先对其进行定位。String dir=System.getProperty("user.dir")得到定位后访问文件。

出现异常的情况:用一个不存在的文件构造scanner 以及 一个不能被创建的文件名构造printwriter。

三.控制流程

1.标签除了应用在循环中,实际上可以应用到任何语句中

label:

{.....

        if() break label;

}   // 完成对一个语句块的中断。

另:大数值:BigInteger(任意精度的整数运算)和BigDecimal(任意精度的浮点数运算)

创建大数值:静态的valueOf方法将普通的数值转换为大数值。

BigInteger a =BigInteger.valuOf(1000000000000000);

不能使用熟悉的算术运算符,需要使用类中专门的方法:

BigInteger c=a.add(b);//c=a+b
BigInteger d=c.multiply(b.add(BigInteger.valueOf(2)));d=c*(b+2)

和add差subtract积multiply商divide求余mod 基本的运算此两类都有

四.数组

一旦创建了数组,就不能改变其大小,就应该使用arraylist,数组初始化为0,对象数组初始化为null。

1.打印数组中的值的三种方式

//first-- traditional way
for(int i=0;i

快速打印二维数组的方法:System.out.println(Arrays.deeoToString(a)

2.数组排序Arrays.sort()方法,采用的是优化的快速排序

binarySearch(type[]a,int start,int end,type v)用二分搜索查找值v,查找成功则返回下表,失败返回负数。即在a中从start到end-1搜索v。

3.不规则数组

java实际上没有多维数组,是数组的数组(内存模型)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/292451.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号