当前位置:网站首页 > Java基础 > 正文

巩固java基础



拜读《核心技术卷》,笔记之。

提纲

1.编译运行第一个程序
2.使用floorMod求模
3.关于Math
4.1数据类型 4.2 变量注意事项
5.数值类型之间的转换(主要注意精度损失):
6.位运算
7.字符串
8.StringBuilder
9.读取输入(控制平台)
10.格式化输出
11.文件输入与输出
12.块作用域的注意事项
13.一个while语句的Demo
14.switch语句的case标签注意:
15.大数值:BigInteger、BigDecimal

1.编译运行第一个程序

结构目录:


使用cmd编译:

 

Welcome.java文件内容:

 

上面的cmd中,javac程序是一个Java编译器,它将文件Welcome.java编译成Welcome.class.java程序启动Java虚拟机。虚拟机执行编译器放在class文件中的字节码。

2.使用floorMod求模

语法:

 
 
3.关于Math
 



通过Javadoc进行具体查看:

  • java的Math.pow:
 

//将y的值设置为x的a次幂。

4.1数据类型
  • 长整型值后缀一个L或者l(如0L)。
  • 十六进制前缀0x或0X。
  • 八进制前缀0,例如010对应八进制的8.显然八进制表示法容易混淆,建议最好不使用八进制常数。
  • Java 7 开始,可以用0b或0B写二进制数,如0B1001就是9.另外,同样是从Java 7 开始,还可以为数字字面量加下划线。如用1_000_000(或0b1111_0100_0010_0100_0000)表示一百万。这些下划线只为易读,Java编译器会去除这些下划线。
  • 绝大部分应用程序都采用double类型,float类型的精度很难满足需求。float类型需要后缀F或f,否则默认浮点数值为double。
  • Double.POSITIVE_INFINITY、Double.NEGATIVE_INFINITY、Double.NaN三个常量分别表示正无穷大、负无穷大、NaN(不是一个数字,计算0/0或者负数的平方根结果为NaN)。
  • boolean类型只有false和true两个值,用来判定逻辑条件。整型值和布尔值之间不能进行相互转换。在C++中,数值甚至指针可以代替boolean值,值0相当于布尔值false,非0值相当于布尔值true,在Java中不可以!
  • final表示的变量只能被赋值一次,一旦被赋值就不能再更改。
4.2 变量注意事项
  • 声明/定义
  • const和final


5.数值类型之间的转换(主要注意精度损失):
  • 上图有6个实心箭头,表示无信息丢失的转换,有3个虚箭头,表示可能有精度损失的转换。比如下面的123 456 789是一个大整数,位数超过了float类型所能表达的位数,在转换的时候,将会得到同样大小的结果(注意底层是用二进制存储数据的),但却失去了一定的精度。

  • 强制类型转换:会丢失精度
 

 
6.位运算

&(“and”) | (“or”) ^(“xor”) ~(“not”)
这些运算符按位模式处理。例如,如果n是一个整数变量,而且用二进制表示的n从右边数第4位为1,则

 

会返回1(结果递等为0b1000 / 0b1000),否则返回0(递等为 0b 0000 / 0b1000)。

7.字符串 (参考)

没有内置的字符串类型,标准库中提供了一个预定义类,String,例如:

 

<1>子串(substring方法)

 

<2>拼接(+)

 

<3>不可变字符串(例:将Hello改为Help!)

 

将来自文件或键盘的单个字符或短的字符串汇集成字符串

<4>检测字符串是否相等:(equals 方法)

 

双等号(==)只能确定两个字符串是否放置在线程池中的同一个位置上

<5>空串与null串

 

String类关键方法:


8.StringBuilder

使用:
1.构建一个空的字符串构建器 :

 

2.加入字符或字符串

 

3.在需要构建字符串时就凋用 toString 方法,得到String对象:

 

StringBuilder类关键方法:

9.读取输入

Demo 代码中的方法均以Enter作为结束:

 
 

next()输入不能隔着空格,不然会报错:



Scanner关键API:

10.格式化输出
 







Date类和相关的格式化选项;格式包括两个字母,以t开始,以表3-7中的任意字母结束:




Demo:


 

  • 格式说明语法图:
    巩固java基础
11.文件输入与输出

要想对文件进行读取,就需要一个用File对象构造一个Scanner对象,如下所示:

 

注意:

要想写入文件就需要构建一个PrintWriter对象,在构造器中,只需要提供文件名:

 

如果文件不存在,创建该文件。可以像输出到System.out一样使用print、println以及printf命令。

本节相关API

12.块作用域的注意事项
13.一个while语句的Demo:

首先计算退休账户中的余额,然后再询问是否打算退休,只要用户回答“N”,循环就重复执行。这是一个需要至少执行一次循环的很好示例,因为用户必须先看到余额才能知道是否满足退休所用。

 
 
14.switch语句的case标签注意:
15.大数值:BigInteger、BigDecimal

如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigInteger和BigDecimal。这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。
使用静态的valueOf方法可以将普通的数值转换为大数值:

 

遗憾的是,不能使用人们熟悉的算术运算符(如:+和 * )处理大数值。而需要使用大数值类中的add和multiply方法。

 

下面上一个例子,先用普通数据类型写一个(排列组合的)组合算法,其中变量k为欲取数,n为总数:

 

测试——组合10中取2,结果为45:

下面用大数值进行计算:

 

比较:

 

 

关键API:

  • 上一篇: java 面试java基础
  • 下一篇: 语言基础java
  • 版权声明


    相关文章:

  • java 面试java基础2025-04-11 23:42:01
  • java基础综合试题2025-04-11 23:42:01
  • java基础前辈总结2025-04-11 23:42:01
  • java基础入门书籍2025-04-11 23:42:01
  • java基础类的2025-04-11 23:42:01
  • 语言基础java2025-04-11 23:42:01
  • java字符串基础知识2025-04-11 23:42:01
  • 李兴华java基础2025-04-11 23:42:01
  • java基础yufa2025-04-11 23:42:01
  • java基础ppt2025-04-11 23:42:01