博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础
阅读量:4027 次
发布时间:2019-05-24

本文共 7893 字,大约阅读时间需要 26 分钟。

软件构造使用Java语言,主要是因为Java是面对对象编程,对于软件构造来说很符合要求。

课上我们主要学习理论知识,在实验中就要用到Java了,但是对于没有学习Java的同学g刚开始时,真的不知道无从下手,所以说对于Java的基础学习也是十分重要的,我们已经有了C语言的基础,学习Java的时候也是比较容易的。

本节的目标是:

  • 学习Java基本的语法和语义
  • 从C过渡到Java

一、Java基础语法 

1.一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。

  • 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
  • :类是一个模板,它描述一类对象的行为和状态。
  • 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
  • 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。

2.Java基础程序: 

编写Java程序可以在记事本中或命令行中,然后编译运行

或者可以在相关的Java编程软件中直接编写比较方便。

3. Java 关键字

类别 关键字 说明
访问控制 private 私有的
protected 受保护的
public 公共的
default 默认
类、方法和变量修饰符 abstract 声明抽象
class
extends 扩充,继承
final 最终值,不可改变的
implements 实现(接口)
interface 接口
native 本地,原生方法(非 Java 实现)
new 新,创建
static 静态
strictfp 严格,精准
synchronized 线程,同步
transient 短暂
volatile 易失
程序控制语句 break 跳出循环
case 定义一个值以供 switch 选择
continue 继续
default 默认
do 运行
else 否则
for 循环
if 如果
instanceof 实例
return 返回
switch 根据值选择执行
while 循环
错误处理 assert 断言表达式是否为真
catch 捕捉异常
finally 有没有异常都执行
throw 抛出一个异常对象
throws 声明一个异常可能被抛出
try 捕获异常
包相关 import 引入
package
基本类型 boolean 布尔型
byte 字节型
char 字符型
double 双精度浮点
float 单精度浮点
int 整型
long 长整型
short 短整型
变量引用 super 父类,超类
this 本类
void 无返回值
保留关键字 goto 是关键字,但不能使用
const 是关键字,但不能使用
null

4.编写 Java 程序时,应注意以下几点:

  • 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。
  • 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。
  • 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
  • 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
  • 主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。

5.Java的几个特点 

(1)关键字的特点:

    a.完全小写的字母
    b.在增强版的记事本中有特殊的颜色
(2)标识符:是指程序中,我们自己定义的内容。

  • 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
  • 关键字不能用作标识符
  • 标识符是大小写敏感的
  • 合法标识符举例:age、$salary、_value、__1_value
  • 非法标识符举例:123abc、-salary

(3)命名规则:

    a.可以包含英文字母26个(区分大小写)、1-9等
    b.不能以数字开头
    c.不能是关键字
(4)常量是指在程序运行期间,固定不变的量
(5)常量的分类:
    a.字符串常量:凡是用双引号引起来的部分
    b.整数常量:
    c.浮点数常量:
    d.字符常量:凡是用单引号引起来的单个字符
    e.布尔常量:只有量中取值:true、false
    f.空常量:null,代表没有任何数据
(6)基本数据类型
    整数型 byte short int long
    浮点型 float double
    字符型 char
    布尔类型 boolean
(7)引用数据类型
    字符串、数组、类、接口、Lambda

6.注意事项

(1).字符串不是基本类型,而是引用类型

(2).浮点型可能只是一个近似值,并非精确的值
(3).数据范围与字节数不一定相关
(4).数据范围当中默认类型是double
  如果是整数,默认是int类型
(5)变量的注意事项:
    a.如果创建多个变量,那么变量之间的名称不可以重复
    b.对于float和long类型来说,字母后缀F和L不要丢掉
    c.如果使用byte或者short类型的变量,那么右侧的数据值不能超过左侧类型的范围
    d.没有进行赋值的变量,不能直接使用,一定要赋值之后,才能使用
    e.变量使用不能超过作用域的范围。
      【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。
    f.可以通过一个语句来创建多个变量,用,隔开 

7.数据类型转换 

当数据类型不一样时,将会发生数据类型转换

自动类型转换(隐式)
    1.特点:代码不需要进行特殊处理,自动完成
    2.规则:数据范围从小到大
强制类型转换
    1.特点:代码需要进行特殊的格式处理,不能自动完成
    2.格式:范围小的类型 范围小的变量名=(范围小的类型)原本范围大的数据;

二、从C到Java(语法结构两者相似)

 1.循环结构for, while 及 do...while

Java中有三种主要的循环结构:

  • while 循环
  • do…while 循环
  • for 循环

1.while( 布尔表达式 ){

//循环内容

2.do {

//代码语句 }

while(布尔表达式);

3.for(初始化; 布尔表达式; 更新) {

//代码语句

}

很显然和C语言是一模一样的

2.Java 条件语句 - if...else

1.if(布尔表达式) {

//如果布尔表达式为true将执行的语句

}

2.if(布尔表达式){

//如果布尔表达式的值为true }

else{

//如果布尔表达式的值为false }

3.if(布尔表达式 1){

//如果布尔表达式 1的值为true执行代码 }

else if(布尔表达式 2){

//如果布尔表达式 2的值为true执行代码 }

else if(布尔表达式 3){

//如果布尔表达式 3的值为true执行代码 }

else {

//如果以上布尔表达式都不为true执行代码 }

很显然和C语言是一模一样的

3.Java switch case 语句

switch(expression){

case value :

//语句

break; //可选

case value :

//语句

break; //可选

//你可以有任意数量的case语句

default : //可选

//语句 } 

4.Java Number & Math 类

包装类 基本数据类型
Boolean boolean
Byte byte
Short short
Integer int
Long long
Character char
Float float
Double double

Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。

Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。

序号 方法与描述
1
将 Number 对象转换为xxx数据类型的值并返回。
2
将number对象与参数比较。
3
判断number对象是否与参数相等。
4
返回一个 Number 对象指定的内置数据类型
5
以字符串形式返回值。
6
将字符串解析为int类型。
7
返回参数的绝对值。
8
返回大于等于( >= )给定参数的的最小整数,类型为双精度浮点型。
9
返回小于等于(<=)给定参数的最大整数 。
10
返回与参数最接近的整数。返回类型为double。
11
它表示四舍五入,算法为 Math.floor(x+0.5),即将原来的数字加上 0.5 后再向下取整,所以,Math.round(11.5) 的结果为12,Math.round(-11.5) 的结果为-11。
12
返回两个参数中的最小值。
13
返回两个参数中的最大值。
14
返回自然数底数e的参数次方。
15
返回参数的自然数底数的对数值。
16
返回第一个参数的第二个参数次方。
17
求参数的算术平方根。
18
求指定double类型参数的正弦值。
19
求指定double类型参数的余弦值。
20
求指定double类型参数的正切值。
21
求指定double类型参数的反正弦值。
22
求指定double类型参数的反余弦值。
23
求指定double类型参数的反正切值。
24
将笛卡尔坐标转换为极坐标,并返回极坐标的角度值。
25
将参数转化为角度。
26
将角度转换为弧度。
27
返回一个随机数。

 类似于C语言中的库

5.Java Character 类

Character 类用于对单个字符进行操作。

Character 类在对象中包装一个基本类型 char 的值

转义序列 描述
\t 在文中该处插入一个tab键
\b 在文中该处插入一个后退键
\n 在文中该处换行
\r 在文中该处插入回车
\f 在文中该处插入换页符
\' 在文中该处插入单引号
\" 在文中该处插入双引号
\\ 在文中该处插入反斜杠

 Character类的方法:

序号 方法与描述
1
是否是一个字母
2
是否是一个数字字符
3
是否是一个空白字符
4
是否是大写字母
5
是否是小写字母
6
指定字母的大写形式
7 ()
指定字母的小写形式
8 ()
返回字符的字符串形式,字符串的长度仅为1

6.Java String 类 

 String 类支持的方法 

SN(序号) 方法描述
1
返回指定索引处的 char 值。
2
把这个字符串和另一个对象比较。
3
按字典顺序比较两个字符串。
4
按字典顺序比较两个字符串,不考虑大小写。
5
将指定字符串连接到此字符串的结尾。
6
当且仅当字符串与指定的StringBuffer有相同顺序的字符时候返回真。
7
返回指定数组中表示该字符序列的 String。
8
返回指定数组中表示该字符序列的 String。
9
测试此字符串是否以指定的后缀结束。
10
将此字符串与指定的对象比较。
11
将此 String 与另一个 String 比较,不考虑大小写。
12
 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
13
使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
14
将字符从此字符串复制到目标字符数组。
15
返回此字符串的哈希码。
16
返回指定字符在此字符串中第一次出现处的索引。
17
返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
18
 返回指定子字符串在此字符串中第一次出现处的索引。
19
返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
20
 返回字符串对象的规范化表示形式。
21
 返回指定字符在此字符串中最后一次出现处的索引。
22
返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
23
返回指定子字符串在此字符串中最右边出现处的索引。
24
 返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。
25
返回此字符串的长度。
26
告知此字符串是否匹配给定的正则表达式。
27
测试两个字符串区域是否相等。
28
测试两个字符串区域是否相等。
29
返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
30
使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
31
 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
32
根据给定正则表达式的匹配拆分此字符串。
33
根据匹配给定的正则表达式来拆分此字符串。
34
测试此字符串是否以指定的前缀开始。
35
测试此字符串从指定索引开始的子字符串是否以指定前缀开始。
36
 返回一个新的字符序列,它是此序列的一个子序列。
37
返回一个新的字符串,它是此字符串的一个子字符串。
38
返回一个新字符串,它是此字符串的一个子字符串。
39
将此字符串转换为一个新的字符数组。
40
使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
41
 使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。
42
 返回此对象本身(它已经是一个字符串!)。
43
使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
44
使用给定 Locale 的规则将此 String 中的所有字符都转换为大写。
45
返回字符串的副本,忽略前导空白和尾部空白。
46
返回给定data type类型x参数的字符串表示形式。
47
判断是否包含指定的字符系列。
48
判断字符串是否为空。

 7.Java StringBuffer 和 StringBuilder 类

 StringBuffer 类支持的主要方法:

序号 方法描述
1 public StringBuffer append(String s)
将指定的字符串追加到此字符序列。
2 public StringBuffer reverse()
 将此字符序列用其反转形式取代。
3 public delete(int start, int end)
移除此序列的子字符串中的字符。
4 public insert(int offset, int i)
将 int 参数的字符串表示形式插入此序列中。
5 insert(int offset, String str)
将 str 参数的字符串插入此序列中。
6 replace(int start, int end, String str)
使用给定 String 中的字符替换此序列的子字符串中的字符。
序号 方法描述
1 int capacity()
返回当前容量。
2 char charAt(int index)
返回此序列中指定索引处的 char 值。
3 void ensureCapacity(int minimumCapacity)
确保容量至少等于指定的最小值。
4 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
将字符从此序列复制到目标字符数组 dst
5 int indexOf(String str)
返回第一次出现的指定子字符串在该字符串中的索引。
6 int indexOf(String str, int fromIndex)
从指定的索引处开始,返回第一次出现的指定子字符串在该字符串中的索引。
7 int lastIndexOf(String str)
返回最右边出现的指定子字符串在此字符串中的索引。
8 int lastIndexOf(String str, int fromIndex)
返回 String 对象中子字符串最后出现的位置。
9 int length()
 返回长度(字符数)。
10 void setCharAt(int index, char ch)
将给定索引处的字符设置为 ch
11 void setLength(int newLength)
设置字符序列的长度。
12 CharSequence subSequence(int start, int end)
返回一个新的字符序列,该字符序列是此序列的子序列。
13 String substring(int start)
返回一个新的 String,它包含此字符序列当前所包含的字符子序列。
14 String substring(int start, int end)
返回一个新的 String,它包含此序列当前所包含的字符子序列。
15 String toString()
返回此序列中数据的字符串表示形式。

 8.Java 数组

Arrays 类

java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。

具有以下功能:

  • 给数组赋值:通过 fill 方法。
  • 对数组排序:通过 sort 方法,按升序。
  • 比较数组:通过 equals 方法比较数组中元素值是否相等。
  • 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。

具体说明请查看下表:

序号 方法和说明
1 public static int binarySearch(Object[] a, Object key)
用二分查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。数组在调用前必须排序好的。如果查找值包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。
2 public static boolean equals(long[] a, long[] a2)
如果两个指定的 long 型数组彼此相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。
3 public static void fill(int[] a, int val)
将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。
4 public static void sort(Object[] a)
对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。

 

转载地址:http://owxbi.baihongyu.com/

你可能感兴趣的文章
Idea导入的工程看不到src等代码
查看>>
技术栈
查看>>
Jenkins中shell-script执行报错sh: line 2: npm: command not found
查看>>
8.X版本的node打包时,gulp命令报错 require.extensions.hasownproperty
查看>>
Jenkins 启动命令
查看>>
Maven项目版本继承 – 我必须指定父版本?
查看>>
Maven跳过单元测试的两种方式
查看>>
通过C++反射实现C++与任意脚本(lua、js等)的交互(二)
查看>>
利用清华镜像站解决pip超时问题
查看>>
[leetcode BY python]1两数之和
查看>>
微信小程序开发全线记录
查看>>
Centos import torchvision 出现 No module named ‘_lzma‘
查看>>
网页设计里的浮动 属性
查看>>
Maximum Subsequence Sum
查看>>
PTA:一元多项式的加乘运算
查看>>
CCF 分蛋糕
查看>>
解决python2.7中UnicodeEncodeError
查看>>
小谈python 输出
查看>>
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
查看>>
python:如何将excel文件转化成CSV格式
查看>>