JAVA核心技术基础知识第三章
JAVA的基本程序设计结构
3.1一个简单的Java应用程序
JAVA区分大小写
四种访问修饰符:
private 私有的
package/friendly/default 不写
protected 受保护的
public 公共的
java后缀扩展名是.java(源代码),javac编译器编译后是.class(字节码)
源代码文件和字节码文件在同一个目录下
java用{}划分程序的各个部分,称为块。
java中任何方法都以“{”开始, 以“}”结束
java中的关键字:

##3.2注释 29
单行注释:// //
多行注释:/* /
文档注释:(解释类及方法) 文档注释是可以导出的
/*
*
*
*/
3.3数据类型
java是一种强类型语言,必须为每一个变量声明一种类型。
8种基本类型:
int short long byte float double char boolean
char型用单引号初始化
String类对象用双引号
String ddd = new String(“ddd”);或String ddd=“ddd”;
对应包装类:
3.4变量与常量
变量与常量
java中用变量来储存值
常量就是不变的变量,在java中用final来指示常量,格式:final 数据类型 常量名
变量声明与变量初始化
声明就是声明了变量类型但未赋值,初始化就是声明并赋值。
基本类型变量声明不能初始化给它null值
编码习惯:变量的声明尽可能靠近变量第一次使用的地方,这是一种良好的编码习惯。
3.4.4 枚举类型 37
变量的取值在一个有限的集合内,如衣服尺寸,针对这种情况,可以自定义枚举类型。
enum size={small,medium,large}
3.5 运算符 37
算术运算符、逻辑运算符、数学函数
算术运算符:+、—、*、/、%(求余/取模)
Math类提供了一些常用的数学函数
隐式类型转换:int->double 声明了小值变量,用大值接收会自动隐式类型转换
强制类型转换:
int nx=(int) x;
当大值强转成小值时,会有精度损失
3.5.9 括号与运算符级别 43
有括号先计算括号内的,没有括号,&&优先级高于||
3.6 字符串 44
Java中没有内置的字符串类型,而是在标准java类库中提供了一个预定义类,叫做String。
每个用双引号括起来的字符串都是String类的一个对象。
char型是用单引号初始化的。
substring(a,b)方法可以截取字符串
用+拼接字符串
——>A/B 用界定符分隔拼接字符串
String不提供修改字符串的方法:
可以用截取+拼接的方式修改字符串
String greeting=“Help”;
greeting = greeting.subString(0,3)+“p!”;——>Help!
3.6.4 检测字符串是否相等 47
可以使用s.equals(t)方法比较两个字符串是否相符
equals是Object的方法,equals是比较同一个引用地址的值是否相等,
重写后可以比较字符串是否相等
一定不要使用运算符来比较字符串,这个运算符只能比较两个字符串是否在同一个位置上
数值:整型(int、short、long、double)、浮点型(float、double)内存地址是固定的
char型内存地址也是固定的。可以用比较
==用来比较基本类型
而equal是用来比较对象(String、包装类)
”equals“: 比较的是两个字符串中的每个字符是否相同,
”==":比较的是两个字符串是否同时引用的一个地址。
compareTo(): 这个函数的作用就是对两个字符串按字典排序的方式进行比较,
返回两个字符串中第一个不同的字符的ascII码差值。
3.6.5 空串与Null串 48
空串""是长度为0的字符串,空串又自己的串长度0和内容(空).String变量还可以存放一个
特殊值,名为null,表示没有任何对象与该变量关联。
3.6.9 构建字符串 54
字符串构建器:
StringBuilder builder = new StringBuilder();
当每次需要添加一部分内容时,就调用append()方法
builder.append(str);
当字符串构建完成时就调用toString方法
builder.toString();
3.8.1 块作用域 63
块(即复合语句)是指由若干条java语句组成的语句,并用一对大括号括起来。块确定了
变量的的作用域。一个块可以嵌套在另一个块中。
不能在嵌套的两个块中声明同名的变量。
3.8.4 确定循环 69
for循环是支持迭代的一种通用结构,由一个计数器或类似的变量控制迭代次数,每次迭代后
这个变量将会更新。
3.9 大数 76
如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的
类:BigInteger和BigDecimal。这两个类可以处理包含任意长度数字序列的数值。
BigInteger可以处理任意精度的整数运算,BigDecimal实现任意精度的浮点数运算。
使用valueOf方法可以将普通数值转换成大数
BigInteger a = BigInteger.valueOf(100);
大数类add和multiply方法实现加乘
3.10 数组
数组是一种数据结构,用来存储同一类型值的集合。通过一个整型下标(index或称索引)
可以访问数组中的每一个值。
声明并初始化一个可以存储100个整数的数组
int[] a = new int[100];
一旦创建了数组,就不能改变它的长度。
int[] a ={1,2,3,4,5};
3.10.2 访问数组元素 80
遍历数组
int[] a ={1,2,3,4,5};
for(int i=0; i<a.length; i++){
System.out.println(a[i]);
}
3.10.3 for each循环 81
增强for循环
for(variable : collection){
statement
}
这个循环读作“循环a中的每一个元素”
它定义了一个变量用来暂存集合中的每一个元素,并执行相应的语句,
collection必须是一个数组或一个实现了Iterable接口的类对象。