乐趣区

Java语言组成

开源地址

开源项目地址:https://github.com/371854496/…
java 学习资料:https://github.com/371854496/…
各位觉得还阔以的话,点下 Star, 分享不易,thank you!

标识符

标识符就是用于给 Java 程序中变量、类、方法等命名的符号。

规则:

①可以由字母,数字,下划线(_),美元符($)组成,但不能包含 @,%,空格等其他特殊字符,不能以数字开头。

②不能是 java 关键字

③是区分大小写的

例如:下面的标识符是合法的:

myName,My_name,Points,$points,_sys_ta,OK,_23b,_3_,Myvoid

下面的标识符是非法的:

name,25name,class,&time,if

变量:

使用小驼峰命名法

常量:

使用纯大写的方式每个单词之间使用下划线链接

MAX_VALUE

方法:

使用小驼峰命名法

类, 接口, 抽象类, 枚举:

使用大驼峰命名法

包:

使用公司域名反写的方式
如:com.ujiuye.www

常见关键字

关键字 含义
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 算术规范 [1]
super 表明当前对象的父类型的引用或者父类型的构造方法
switch 分支语句结构的引导词
synchronized 表明一段代码需要同步执行
this 指向当前实例对象的引用
throw 抛出一个异常
throws 声明在当前定义的成员方法中所有需要抛出的异常
transient 声明不用序列化的成员域
try 尝试一个可能抛出异常的程序块
void 声明当前成员方法没有返回值
volatile 表明两个或者多个变量必须同步地发生变化
while 用在循环结构中

关键字的特点

1. 全部都是小写的

2. 自己给自己定义东西起名字的时候, 不能和关键字重名

3. 其中有两个关键字是保留关键字, goto 和 const, 当前 java 版本中还没有使用, 不代表以后不会被使用.

修饰符

Java 使用了一定数量的称为修饰符的关键字,这些修饰符指定了数据、方法和类的属性以及它们的使用方法。

例如 public 和 static 都是修饰符,另外还有 private、final、abstract 和 protected。

一个 public 数据、方法或者类可以被其他的类访问,而一个 private 数据或方法不能被其他类访问。

注释

在 Java 中,一行注释以双斜杠(//)标识;

多行注释包含在“/”和“/”之间;

文档注释包含在“/*”和“/”之间。

常量

// 声明常量
final int COUNT=10;
final float HEIGHT=10.2f;

变量

// 声明变量
// 数据类型 变量名 = 初始值;
int age = 18;

使用变量的注意事项

1. 变量是有作用域的

作用于: 起作用的范围

范围: 从他定义的哪一行起, 到出他所在大括号.

变量定义之前不能使用. 出了他所在的大括号就不能访问了.

2. 在同一个大括号 (同一个作用域) 中不能定义同名的变量.

3. 使用变量的时候必须先给初始值, 才能使用.

4. 变量的定义和变量初始化可以分开写.

5. 可以在同一行一次定义多个变量

数据类型 变量名 1 = 初始值 1, 变量名 2 = 初始值 2,….;

这种情况只适合一次定义多个同类型的变量;

代码示例

class test_变量使用注意事项 {public static void main(String[] args) {// System.out.println(a);
        int a  = 10;

        // float a = 3.14f; 变量重名
        {System.out.println(a);
            // double a = 14.0;  变量重名
        }

         int num;
         num = 1;
         System.out.println(num);
        int age = 18, age2 = 20, age3 = 40;
        // int age = 18, age2 = 20, age3 = 40.5; 数据类型必须一致
        System.out.println(age);
        System.out.println(age2);
        System.out.println(age3);
         System.out.println(age +""+age2 +"   "+age3);

    }

    public static void sayHi(){//System.out.println(a);
    }

}

数据类型

1.java 是一种强类型语言,(定义变量的时候必须给改变执行数据类型), 数据类型就是为了执行内存空间大小的额.

2. 基本数据类型:

数值型:四类八种

整数类型:

  • byte 比特 1 个字节 数据范围 -128~127 -2^7 ~ 2^7-1
  • short 短整型 2 个字节 -2^15 ~ 2^15-1
  • int 整型 4 个字节 -2^31 ~ 2^31-1
  • long 长整型 8 个字节 -2^63 ~ 2^63-1

浮点类型:

  • float 单精度浮点型 4 个字节 > long 类型存储范围
  • double 双精度浮点型 8 个字节 > float 类型存储范围

字符类型:

  • char 字符类型 2 个字节 0~65535

布尔类型:

  • boolean 未知 true 和 false

引用数据类型:
类 接口 数组 枚举 标注

数据类型转换

自动类型转换:

取值范围小的类型的数据,往取值范围大的类型的变量中放,可以直接放进去,不会损失精度;

如:byte–>short–>int–>long–>float–>double;
char–>int;

强制类型转换:

将取值范围大的类型的数据,往取值范围小的类型变量中放,有可能放不进去,会出现精神读损失;

语法:

小的范围的数据类型 新的变量名 = (小的范围的数据类型) 旧的大范围的变量名

    int a = 128;
    byte b = (byte)a;

运算符

1. 概念: 用户运算和操作数据符号就是运算符

2. 运算符的分类

  • 算数运算符
  • 赋值运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符
  • 三元运算符

算数运算符

1. 用来进行算数运算的符号

2.+, -, *(乘), /(除号), %(取余运算符)

  • +: 加法运算

    • -: 减法运算
  • *: 乘法运算
  • /: 除法运算
  • %: 取余运算

3./ 如果运算符两边都是整数, 得到结果只保留整数部分.

/ 如果两边有一边是小数, 得到的结果就是小数

%: 取余运算符(取模运算符), 两边可以是小数也可以整数

赋值运算符

1. 作用: 把赋值运算符号右边的数据赋值给左边

2. 基本赋值运算符 =

3. 复合赋值运算符 +=, -=, *=, /=, %=

int  a =  10;
a += 1; // a = a+1;  
System.out.println(a); // 11 

自增和自减运算符

1.++ 和 –-

2.++: 变量每次自增 1

3.–: 变量每次自减 1

4. 注意事项:

++: 如果在变量前, 先对变量进行 +1, 再使用这个变量

++: 如果在变量的后面, 先使用变量中的值, 再对变量 +1;

无论 ++ 在变量前面还是后面, 执行之后变量都会 +1;

–: 如果在变量前, 先对变量进行 -1, 再使用这个变量

–: 如果在变量的后面, 先使用变量中的值, 再对变量 -1;

无论 – 在变量前面还是后面, 执行之后变量都会 -1;

口诀:

++ 在前, 先加后用,++ 在后, 先用后加

– 在前, 先减后用,– 在后, 先用后减

    int q = 5, n = 10;
//   s  5  -  10   +   6   +  10  = 11
//   q  6      6       7       7
//   n  10    9        9       10
    int s= (q++) - (n--) + (q++) + (++n);

比较运算符

1. 用于比较两个数据的关系, 比较大小, 比较是否相等, 比较运算符的运行结果是 boolean 类型,
只有 true 和 false 两个结果

2. 分类: >, <, >=, <= 比较数值大小

==: 判断连个数据是否相等

!=: 判断两个数据是否不相等

逻辑运算符

1. 用来判断逻辑是否成立的运算符, 如果逻辑成立, 返回 true, 如果不成立, 返回 false, 返回的数据类型是 boolean 类型

逻辑运算符两边必须是返回真或假的表达式

2. 逻辑运算符的分类

  • &&: 与运算符 两边同时为真则为真, 有一边为假则为假
    true && true   true
    true && false   false
    false && true   false
    false && false  false
  • ||: 或运算符 两边同时为假则为假, 有一边为真则为真
    true || true  true
    true || false  true
    false || true  true
    false || false  false
  • !: 逻辑非 非真即假, 非假即真
    !true     false 
    !false     true
  • ^: 逻辑异或 两边数据相同, 返回假, 不同返回真
    true  ^  true   false 
    true  ^  false  true
    false ^  true   true
    false ^  false  false 

小技巧:

1. 为了提高执行效率, 习惯把容易为假的条件放到 && 运算符的前面. 只要前面为假, 后面就不参与运算.

2. 为了提供效率, 把容易为真条件放在 || 运算符的前面, 只要前面为真后面的表达式就不参与运算.

位运算符

1. 对于数据进行内存中运算, 让数据往左或者是往移位.

左移 1 位, 数据整体扩大 2 倍,

右移 1 位, 数据整体缩小 2 倍;

2. 位运算符分类:

<< 数字 : 左移运算符, 数字是几, 代表要往左移动几位
, 就相当于往左移动几位, 就相当于乘以 2 的几次方

‘>>’数字: 右移运算符, 数字是几, 代表要往右移动几位, 就相当于往右移动几位, 就相当于除以 2 的几次方

‘>>>’数字 : 无符号右移运算符, 只能操作正数. 数字是几, 代表要往右移动几位, 就相当于往右移动几位, 就相当于除以 2 的几次方

代码示例:

        int a = 8;
        System.out.println(a << 2); //32
        int b = -16;
        System.out.println(b >> 1); //-8
        int c = -16;
        System.out.println(c >>> 1);//2147483640

三元运算符

1. 元: 表示操作数据的个数或者操作的表达式的个数

2. 三运算符: 能操作三个数据或者三个表达式

3. 格式: 表达式 1 ? 表达式 2 : 表达式 3;

4. 说明

表达式 1: 必须是返回真或假的表达式, 返回 boolean 数据类型

表达式 2 和表达式 3 返回任意数据类型都行

5. 执行原理:

1. 表达式 1 为真, 把冒号前表达式 2 的结果, 当做整个三元运算符的返回的结果

2. 表达式 1 为假, 把冒号后表达式 3 的结果, 当做整个三元运算符的返回的结果

公众号 全战开花

获取更多技术干货

退出移动版