JavaSE总结(二)——语言基础

本文全面介绍了Java编程的基础知识,包括注释、关键字、常量与变量、运算符、数据类型、大数值处理、数组操作以及控制流程等内容。适合初学者快速掌握Java编程的基本语法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、注释

在java中,有3种标记注释的方式。

1.1 单行注释

//单行注释内容

1.2 多行注释

/*
多行注释内容
多行注释内容
多行注释内容
多行注释内容
*/ 

1.3 文档注释

/**
 * 类注释
 *
 * @author vivfeng
 */
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

二、关键字

2.1 总览

访问控制

private

protected

public

      

类,方法和变量修饰符

abstract

class

extends

final

implements

interface

native

new

static

strictfp

synchronized

transient

volatile

     

程序控制

break

continue

return

do

while

if

else

for

instanceof

switch

case

default

      

错误处理

try

catch

throw

throws

     

包相关

import

package

       

基本类型

boolean

byte

char

double

float

int

long

short

null

true

false

       

变量引用

super

this

void

      

保留字

goto

const
 

       

2.2 含义

关键字含义
abstract表明类或者成员方法具有抽象属性
assert用来进行程序调试
boolean基本数据类型之一,布尔类型
break提前跳出一个块
byte基本数据类型之一,字节类型
case用在switch语句之中,表示其中的一个分支
  
catch用在异常处理中,用来捕捉异常
char基本数据类型之一,字符类型
class
const保留关键字,没有具体含义
continue回到一个块的开始处
default默认,例如,用在switch语句中,表明一个默认的分支
do用在do-while循环结构中
double基本数据类型之一,双精度浮点数类型
else用在条件语句中,表明当条件不成立时的分支
enum枚举
extends表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
final用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变
finally用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float基本数据类型之一,单精度浮点数类型
for一种循环结构的引导词
goto保留关键字,没有具体含义
if条件语句的引导词
implements表明一个类实现了给定的接口
import表明要访问指定的类或包
instanceof用来测试一个对象是否是指定类型的实例对象
int基本数据类型之一,整数类型
interface接口
long基本数据类型之一,长整数类型
native用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new用来创建新实例对象
package
private一种访问控制方式:私用模式
protected一种访问控制方式:保护模式
public一种访问控制方式:共用模式
return从成员方法中返回数据
short基本数据类型之一,短整数类型
static表明具有静态属性
strictfp用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
super表明当前对象的父类型的引用或者父类型的构造方法
switch分支语句结构的引导词
synchronized表明一段代码需要同步执行
this指向当前实例对象的引用
throw抛出一个异常
throws声明在当前定义的成员方法中所有需要抛出的异常
transient声明不用序列化的成员域
try尝试一个可能抛出异常的程序块
void声明当前成员方法没有返回值
volatile
  
表明两个或者多个变量必须同步地发生变化
while
  
用在循环结构中 

三、常量与变量

3.1 常量

在 Java中,利用关键字 final指示常量。例如:

final int A = 1;

关键字 final 表示这个变量只能被赋值一次。一旦被赋值之后,就不能够再更改了。习惯上, 常量名使用全大写。

3.2 变量

在 Java中,每个变量都有一个类型。在声明变量时,变量的类型位于变量名之前。例如:

int a;
long b;
String s;

变量名必须是一个以字母开头并由字母或数字构成的序列。另外,不能使用 Java 保留字作为变量名。

四、运算符

4.1 算术运算符

运算符描述例子
+加法:相加运算符两侧的值A + B 等于 30
-减法:左操作数减去右操作数A – B 等于 -10
*乘法:相乘操作符两侧的值A * B等于200
/除法:左操作数除以右操作数B / A等于2
取余:左操作数除以右操作数的余数B%A等于0
++自增:操作数的值增加1B++ 或 ++B 等于 21
--自减:操作数的值减少1B-- 或 --B 等于 19

4.2 关系运算符

运算符描述例子
==检查如果两个操作数的值是否相等,如果相等则条件为真。(A == B)为假。
!=检查如果两个操作数的值是否相等,如果值不相等则条件为真。(A != B) 为真。
>检查左操作数的值是否大于右操作数的值,如果是那么条件为真。(A > B)为假。
<检查左操作数的值是否小于右操作数的值,如果是那么条件为真。(A <B)为真。
>=检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。(A >= B)为假。
<=检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。(A <= B)为真。

4.3 位运算符

运算符描述例子
如果相对应位都是1,则结果为1,否则为0(A&B)得到12,即 0000 1100
|如果相对应位都是0,则结果为0,否则为1(A | B)得到61,即 0011 1101
^如果相对应位值相同,则结果为0,否则为1(A ^ B)得到49,即 0011 0001
按位取反运算符翻转操作数的每一位,即0变成1,1变成0。(〜A)得到-61,即 1100 0011
<<按位左移运算符。左操作数按位左移右操作数指定的位数。(A << 2)得到240,即 1111 0000
>>按位右移运算符。左操作数按位右移右操作数指定的位数。(A >> 2)得到15,即 0000 1111
>>>按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。(A>>>2)得到15,即 0000 1111

4.4 逻辑运算符

运算符描述例子
&&称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。(A && B)为假。
||称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。(A || B)为真。
称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。!(A && B) 为真。

4.4 赋值运算符

运算符描述例子
=赋值运算符,将右操作数的值赋给左侧操作数C = A + B将把A + B得到的值赋给C
+=加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数C += A等价于C = C + A
-=减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数C -= A等价于C = C - A
*=乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数C *= A等价于C = C * A
/=除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数C /= A等价于C = C / A
%=取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数C %= A等价于C = C%A
<<=左移位赋值运算符C <<= 2等价于C = C << 2
>>=右移位赋值运算符C >>= 2等价于C = C >> 2
&=按位与赋值运算符C&= 2等价于C = C&2
^=按位异或赋值操作符C ^= 2等价于C = C ^ 2
|=按位或赋值操作符C |= 2等价于C = C | 2

4.5 条件运算符(?:)

条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。

int a = 1;
int b = 2;
boolean f = a >= b ? true : false;//f为false

五、数据类型

5.1 基本数据类型

/* byte
 * 存储需求:1字节
 * 取值范围:-128 ~ 127
 * 默认值:0
 * */
byte num1 = 100;

/* short
 * 存储需求:2字节
 * 取值范围:-32,768 ~ 32,767
 * 默认值:0
 * */
short num2 = 10000;

/* int
 * 存储需求:4字节
 * 取值范围:-2,147,483,648 ~ 2,147,483,647
 * 默认值:0
 * */
int num3 = 1_000_000_000;

/* long
 * 存储需求:8字节
 * 取值范围:-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
 * 默认值:0L
 * */
long num4 = 1_000_000_000_000_000_000L;

/* float
 * 存储需求:4字节
 * 有效位数:6 ~ 7位
 * 默认值:0.0F
 * */
float num5 = 1.1F;

/* double
 * 存储需求:8字节
 * 有效位数:15位
 * 默认值:0.0D
 * */
double num6 = 2.0D;

/* boolean
 * 存储需求:JVM规范中,boolean变量作为int处理,也就是4字节
 * 取值范围:只有两个取值,即 true 和 false
 * 默认值:false
 * */
boolean k = true;

/* char
 * 存储需求:2字节
 * 取值范围:0~65535
 * */
char c = 'a';

5.2 引用数据类型

/*
 * 在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。
 * 这些变量在声明时被指定为一个特定的类型,比如 String 等。
 * 变量一旦声明后,类型就不能被改变了。
 * 对象、数组都是引用数据类型。
 * 所有引用类型的默认值都是 null。
 */
String string = null;
string = new String("aaaaa");

六、大数值

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

//使用静态的 valueOf方法可以将普通的数值转换为大数值
BigInteger bigA = BigInteger.valueOf(5L);
BigInteger bigB = BigInteger.valueOf(10L);
BigInteger bigC = null;
//加
bigC = bigA.add(bigB);
//减
bigC = bigA.subtract(bigB);
//乘
bigC = bigA.multiply(bigB);
//除
bigC = bigA.divide(bigB);
//取余
bigC = bigA.mod(bigB);

七、数组

数组是一种数据结构,用来存储同一类型值的集合。通过一个整型下标可以访问数组中的每一个值。在声明数组变量时, 需要指出数组类型 (数据元素类型紧跟 [] ) 和数组变量的名字。一旦创建了数组,就不能再改变它的大小。

7.1 一维数组

//静态初始化
//静态初始化的同时就为数组元素分配空间并赋值
int[] array1 = {1, 2, 3, 4};

//动态初始化
int[] array2 = new int[4];
array2[0] = 1;
array2[1] = 2;
array2[2] = 3;
array2[3] = 4;

7.2 二维数组

//静态初始化
int[][] array3 = {{1, 2}, {2, 3}, {4, 5}};

//动态初始化
int[][] array4 = new int[2][3];
array4[0][0] = 12;
array4[0][1] = 34;
array4[0][2] = 93;
array4[1][0] = 12;
array4[1][1] = 34;
array4[1][2] = 93;

7.3 遍历数组

//for循环
for (int i = 0; i < array1.length; i++) {
    System.out.println(array1[i]);
}
//for each循环
for (int i : array1) {
    System.out.println(i);
}

八、控制流程

8.1 条件分支

int n = 19;
if (n < 10) {
    System.out.println(n + " < 10");
} else if (n < 50) {
    System.out.println("10 < " + n + " < 50");
} else {
    System.out.println("50 < " + n);
}

8.2 开关分支

int n = 1;
switch (n) {
    case 1:
        System.out.println("n = 1");
        break;
    case 2:
        System.out.println("n = 2");
        break;
    case 3:
        System.out.println("n = 3");
        break;
    default:
        System.out.println("n未知");
        break;
}

8.3 循环

Integer[] integers = new Integer[5];
integers[0] = 0;
integers[1] = 1;
integers[2] = 2;
integers[3] = 3;
integers[4] = 4;
//for循环
for (int i = 0; i < integers.length; i++) {
    System.out.println(integers[i]);
}
//for each循环
for (Integer integer : integers) {
    System.out.println(integer);
}
//while循环
int j = 0;
while (j < integers.length) {
    System.out.println(integers[j]);
    j++;
}
//do while循环
int m = 0;
do {
    System.out.println(integers[m]);
    m++;
} while (m < integers.length);

转载于:https://www.cnblogs.com/vivfeng/p/10048363.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值