Java 基础知识汇总(一)

1.什么是java

Java可以理解为编程语言或者开发工具。

2.java的目的

  1. java 最终的目的是用于编写直接在机器上运行的程序。

3.java的运行原理

在这里插入图片描述
Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。

4.对于面向对象编程和面向过程编程的初步认识

面向过程编程:通过一个函数去完成一件事情,而且这件事情完成之后,不会留下任何的遗产。或者理解为:一次性。
面向对象编程:在完成一件事情时,会将事情中的实体对象抽象出来,形成「类」的概念,事情的完成是通过类的对象之间发生关系去实现的。

类是一群对象的特征母版,对象是类的实现。
特征(类)包含的内容有:基本属性(属性)、行为(方法)

、、、类:类是一个模板,它描述一类对象的行为和状态
、、、对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。
一个类可以包含以下类型变量:

  1. 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
  2. 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
  3. 类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。
    一个类可以拥有多个方法

数据类型

Java 是一种强数据类型的语言,就是指在变量进行定义的时候,就指定了变量的数据类型是什么。
内存:运行中的程序都会占用内存空间,因为程序在运行过程中,需要开辟包括方法栈区、变量…,广泛的理解,在程序运行结束后内存空间会被释放,但是定义的变量、方法等,都是有「生命周期」的,一旦变量销毁了,内存也是会释放的。
在 Java 中,有垃圾自动回收机制 GC ,对于释放的或者无效的变量会自动回收,不像 C 、C++ 要手动的去释放。

基本的数据类型

  1. 数值型
    <1>整数型:byte(-128-127)、short(15次方)、int(31次方)、long(63次方)
    <2>浮点型:float(38次方)、double(308次方)
    <3>在实际开发中,我们一般使用 int、double
  2. 字符型
    char:用单引号表示,Java 中使用16位的 Unicode 字符集作为编码方式,
    表示方式
    直接通过单个字符表示:‘a’、‘9’ 等;
    通过转义字符表示:’\t’、’\n’、’\r’、’’’;
    直接使用 unicode 表示:’\uxxxx’。
  3. 字符串类型
    String str
  4. 布尔型
    boolean:表示逻辑中的真和假,值只有 true / false。
    在这里插入图片描述

关于数据之间的转化

在基本数据中,是可以进行类型之间的强制转化的,但是要注意,如果从低精度的转化为高精度时不会有问题,但是从高精度转化为低精度时,可能出现精度缺失。

java里面的转义符
表达 效果
\n 换行
\r 回车
\f 换页符
\b 退格
\0 空格
\s 字符串
\t 制表符
\” 双引号
\’ 单引号

变量

在 JS 中,通过 var i = 10; i = “abc”; 使用变量,因为没有在声明变量的时候给于数据类型的强制定义,可以给变量赋予任意类型的值。我们把 JavaScript 称为弱类型编程语言。
Java 在声明编程时候,必须准确定义变量的数据类型。
变量声明的语法:数据类型 变量名;
例如:int a;
变量赋值的语法:变量名 = 值;
例如:a = 10;
两者可以写在一起:数据类型 变量名 = 值;
例如:int a = 10;

直接量

直接量是指在程序中直接通过源代码的方式指定的值,有时也成为字面量。
在编译的时候,JVM 就定义到常量池中。
比如 int a = 5; 这里的 5 就是一个直接量。
在 Java 中可以定义的直接量包含:基本数据类型、字符串类型、null。

注:String 类是一个不可改变类,意思就是在String 对象被创建出来后就不能被改变了。当程序第一次使用某个字符串直接量时,Java 会使用常量池来缓存该字符串直接量。如果后面程序用到了这个字符串直接量,Java 会直接引用常量池字符串。在常量池中不会存在两个一样的字符串字面量值。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

运算符

算术运算符

+ - * / % ++ –
+ 运算符除了进行数学运算的加法之外,还可以做字符串的拼接。
++ 自增
– 自减
实例:
int m = 10;
System.out.println(m++); // 10
System.out.println(m); // 11
System.out.println(++m); // 12
System.out.println(-m); // -12

赋值运算符

= += -= = *= %=
实例
m += 1; // m = m + 1
System.out.println(m); // 13
m -= 1; // m = m - 1
System.out.println(m); // 12

比较运算符
用于判断两个变量或者常量的大小,返回结果为 true/false。

>< <= >= == !=
左右两边的操作数只能是数值
逻辑运算符
运算符两边必须是 boolean 类型的变量、常量、表达式
与 && 或者 || 非 !
与:只要有一个假就是假
或者:只要有一个真就是真

三目运算符

expression ? if-true-statement : if-false-statement
实例:
int age = 16;
String ageStr = age > 18 ? “成年” : “未成年”;
System.out.println(ageStr); // 未成年

循环结构
循环语句可以在满足循环条件的情况下,反复执行某一段代码。
被重复执行的代码叫做循环体。
循环语句可能包含的部分有:
初始化语句(init_statement):一条或多条语句,这些语句用于完成一些初始化的工作。
循环条件(test_expression):是一个 boolean 类型的表达式,这个表达式决定是否继续执行循环体。
循环体(body_statement):如果条件允许,循环体会被反复执行。
迭代语句(iteration_statement):在一次循环体执行结束后,对循环体条件进行求值,通常用于控制循环条件中的变量,使得循环在合适的时候结束。

while 结构
(init_statement);
while (test_expression) {
body_statement;
[iteration_statement];
}

形式一:
if (logic expression) {
statement;
}
int age = 20;
if (age > 18) {
String name = “Tom”;
System.out.println(“我叫” + name + “,已经” + age + “岁了,我成年了!”);
}

形式二:
if (logic expression) {
statement;
} else {
statement;
}
int age = 16;
if (age > 18) {
String name = “Tom”;
System.out.println(“我叫” + name + “,已经” + age + “岁了,我成年了!”);
} else {
System.out.println(“我还未成年!”);
}

形式三:
if (logic expression) {
statement;
} else if (logic expression) {
statement;
} else {
statement;
}
if (age >= 0 && age <= 10) {
System.out.println(“少年”);
} else if (age <= 18) {
System.out.println(“青少年”);
} else if (age <= 30) {
System.out.println(“青年”);
} else if (age <= 50) {
System.out.println(“中年”);
} else {
System.out.println(“老年”);
}

switch 结构
swtich 语句是有控制表达式和多个 case 标签块组成。在控制表达式中,只允许出现 byte、short、int、char四种基础数据类型,在JDK1.7以后,支持 String 类型的控制表达式。
switch (expression) {
case condition1 : {
statement;
break;
}
case condition2 : {
statement;
break;
}
default : {
statement;
break;
}
}
String color = “red”;
switch (color) {
case “red”: {
System.out.println(“红色”);
break;
}
case “blue”: {
System.out.println(“蓝色”);
break;
}
case “green”: {
System.out.println(“绿色”);
break;
}
default: {
System.out.println(“没有找到”);
break;
}
}

while 结构
(init_statement);
while (test_expression) {
body_statement;
[iteration_statement];
}
int sum = 0;
int i = 1;
while (i <= 10) {
sum = sum + i;
i++;
}

do-while 结构
(init_statement);
do {
body_statement;
[iteration_statement];
} while (test_expression)

for 循环
语法:
for ([init_statement]; test_expression; [iteration_statement]) {
body_statement;
}
实例
int sum = 0;
for (int i = 1; i <= 28; i++) {
sum = sum + i;
}
System.out.println(sum);
在实际的开发中,对于已知循环次数的遍历,一般使用 for 循环。而且 for 循环的应用场景要比 while 循环多。

猜你喜欢

转载自blog.csdn.net/weixin_43807455/article/details/86492054