程序基础概念
程序基础概念
Java 程序注释
任何一套程序代码里面实际上都会有大量的程序逻辑所组成,但是如果要想对一套代码进行长期的维护,就需要编写大量的注释,对一些程序的代码功能进行详细的解释,这样不仅便于开发者自己读懂程序,也方便后续的继任开发者读懂程序。在 Java 中所有的注释信息在编译时都不会进行编译处理,而 Java 程序中的支持的注释类型一共有三种:
- 单行注释: //注释内容
- 多行注释: /*...注释内容...*/
- 文档注释: /**...注释内容...*/
案例
/**
* 【文档注释】该类是案例
* 文档注释之中要大量的配置语法,其中”@author“描述作者信息,一般通过开发工具生成
*
* @author wangdx
*/
public class YixDemo { //【单行注释】定义程序主类
public static void main(String[] args) { //【单行注释】定义程序主方法
/*
*【多行注释】在屏幕输出信息
* 输出信息
**/
System.out.println("一祥集团你好:www.yix.com");
}
}
标识符
在 Java 中标识符定义的核心原则如下:由字母、数字$所组成,其中不能使用数字开头,不能使用 Java 中的保留字(或者被称为“关键字”)
对于标识符的使用,本书有如下建议:.
- 在编写的时候尽量不要去简单的使用数字,例如:i1、i2;
- 命名尽量有意义,不要使用“a”"b”这样的简单标识符。而使用“Student”“Math”之类的单词进行定义,因为这类的标识符都可以通过名称直接获取其意义;
- Java 中标识符是区分大小写的,例如: yootk、Yootk、YOOTK 表示的三个不同的标识符;
- “$”符号有特殊意义,不要在开发中去直接使用(将在内部类中为读者讲解);
正确标识符
错误标识符
关键字
Java 数据类型
基本数据类型
- 数值型
- 整数类型(byte,short,int,long)
- 浮点类型(float,double)
- 字符型(char)
- 布尔型(boolean)
- 数值型
引用数据类型
- 类(class)
- 接口(interface)
- 数组
变量和常量
变量和常量是在整个程序计算过程之中主要使用的两个数据的存储形式,其中所有给定的不能修改的内容将其称为常量,而所有可以修改的内容就将其称为变量
案例
public class DataDemo {
public static void main(String[] args) {
//常量无法修改
System.out.println(10);
int age = 18;
age= 20;
System.out.println(age);
int current = 17;
current = age;
System.out.println(current);
}
}
整型
整型数据一共有 4 种类型,按照保存的范围由小到大分别为 byte、 short、int、long 在 Java 里面任何一个整型常量 (例如,30、100 这样的数字),其默认的类型都是 int 型
案例:定义 int 和修改
public class IntDemo {
public static void main(String[] args) {
int age = 18;
age = age + 20;
System.out.println(age);
}
}
D:\develop\wsoft\jdk\jdk-11.0.20\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:61751,suspend=y,server=n -javaagent:D:\develop\soft\ideaIU-2022.3.3.win\plugins\java\lib\rt\debugger-agent.jar -Dfile.encoding=UTF-8 -classpath D:\develop\project\wyix\gitee\study_service\out\production\study_service;D:\develop\soft\ideaIU-2022.3.3.win\lib\idea_rt.jar w02.IntDemo
Connected to the target VM, address: '127.0.0.1:61751', transport: 'socket'
38
Disconnected from the target VM, address: '127.0.0.1:61751', transport: 'socket'
public class IntDemo {
public static void main(String[] args) {
int max = 2147483647;
int min = -2147483647;
System.out.println(max + 1);
System.out.println(max + 2);
System.out.println(min - 2);
}
}
D:\develop\wsoft\jdk\jdk-11.0.20\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:61985,suspend=y,server=n -javaagent:D:\develop\soft\ideaIU-2022.3.3.win\plugins\java\lib\rt\debugger-agent.jar -Dfile.encoding=UTF-8 -classpath D:\develop\project\wyix\gitee\study_service\out\production\study_service;D:\develop\soft\ideaIU-2022.3.3.win\lib\idea_rt.jar w02.IntDemo
Connected to the target VM, address: '127.0.0.1:61985', transport: 'socket'
-2147483648
-2147483647
2147483647
Disconnected from the target VM, address: '127.0.0.1:61985', transport: 'socket'
Process finished with exit code 0
数据溢出
如果要想去解决这种溢出的问题,就只能够通过扩大数据范围的方式来实现,那么比 int 范围更大的是 long 数据类型。而要将 int 型的变量或常量变为 long 数据类型有如下两种形式:。 形式一: int 型常量转换为 long 型常量,使用“数字 L” 形式二:int 型变量转换为 long 型变量,使用“(long)变量名称”实际上可以用此类方式实现各种数据类型的转换,例如: 如果将 int 型变量变为 double 型变量,可以使用“(double) 变量名称。即:通用转换格式“(目标数据类型)变量”“数字|(小写的字母 L)”完成
案例:数据溢出
public class IntDemo {
public static void main(String[] args) {
//数据溢出
int max = 2147483647;
int min = -2147483648;
System.out.println("数据溢出:"+(max + 1));
System.out.println(min - 2);
//long类型解决
long maxLong = 2147483647;
long minLong = -2147483648;
System.out.println(max + 1);
System.out.println(min - 2);
//强制类型转换
long num = 2147483649L; //超出int范围出现数据溢出
int temp = (int)num;
System.out.println(temp);
}
}
数据溢出:-2147483648
2147483646
-2147483648
2147483646
-2147483647
byte
案例
public class IntDemo {
public static void main(String[] args) {
/*
*定义byte,每一位字节类型由8位二进制数据组成
* 数据范围-127 ~ 128
* */
byte num = 20;
System.out.println(num);
}
}
浮点型
- 浮点型数据描述的是小数而在 Java 里面任意的一个小数常量其对应的类型为 double 所以在以后描述小数的时;
- Java 中的浮点类型一共定义有两类,除了最为常用的 double 数据类型之外还可以使用 float 定义浮点型数据,但是 float 由于存在二进制操作的问题,所以会产生计算结果精度不准确的“错误”由于 Java 中默认的浮点型常量类型为 double,所以在 Java 里面如果要想定义 float 变量,就必须将浮点型常量进行强制的类型转换才可以正常进行
- strictfp (strict float point、:精确浮点)是一个并不会被经常使用到的关键字。使用它定义的程序结构(例如:类、接口、方法等)中所有的 float 和 double 表达式都严格遵守 FP-strict 的限制,符合 IEEE-754 规范。也就是说如果希望浮点运算更加精确,并且不 会因为不同的硬件平台所执行的结果不一致的话,可以用关键字 strictfp
案例
public strictfp class DoubleDemo {
public static void main(String[] args) {
double a = 99.89;
int b = 199;
double c = a + b; //int自动转double
System.out.println(c);
float f_a = 9.9F;
float f_b = (float) 0.3;
System.out.println(f_a + f_b);
System.out.println(f_a / f_b);
/*
* 整型除法会放弃所有小数
* */
int i_a = 9;
int i_b = 2;
System.out.println(i_a / i_b);
System.out.println(i_a / (double) i_b);
}
}
298.89
10.2
32.999996
4
4.5
字符
- 在计算机的世界里,一切都是以编码的形式出现。Java 使用的是十六进制的 Unicode 编码,此类编码可以保存任意的文字,所以在 Java 中进行字符处理时就可以避免由于位数码长度不同所造成的乱码问题。如果要定义字符变量则可以使用 char 关键字进行定义;
- 在 UNICODE 编码设计过程之中,考虑到与其它语言的结合问题 (C/C++),那么在此编码里与 ASCII 编码的部分编码重叠,以下面内容的编码为例:
- 大写字母范围: 65(A)~90(Z)
- 小写字母范围: 97(a)~122(z)大写字母和小写字母之间差了 32
- 数字字符范围: 48(0)~57 (9)
案例
public class CharDemo {
public static void main(String[] args) {
char c = 'a'; //需要使用单引号声明
System.out.println(c);
int num = c;
System.out.println(num);
num = num - 32;
System.out.println((char) num);
char ch = '王'; //只可保存一位中文
System.out.println((int) ch);
}
}
a
97
A
29579
布尔型
布尔型是一种描述处理结果的逻辑内容,对于计算机的世界来讲除了真就是假,没有中间的过渡环节,布尔在 Java 编程语言里面使用 boolean 关键字来进行定义,而布尔的取值只有两个内容: true、false (这两个在 Java 中都属于有特殊含义的关键字)。
乔治·布尔
- 乔治·布尔 (George Boole,1815.11.2~1864)1815 年 11 月 2 日生于英格兰的林肯 19 世纪最重要的数学家之一,出版了《逻辑的数学分析》,这是它对符号逻辑诸多贡献中的第一次。1854 年他出版了《思维规律的研究》,这是他最著名的著作。在这本书中布尔介绍了现在以他的名字命名的布尔代数。
- 1864 年,布尔死于肺炎,肺炎是他在暴风雨天气中尽管已经湿淋淋的了仍坚持上课引起的。由于其在符号逻辑运算中的特殊贡献,很多计算机语言中将逻辑运算称为布尔运算,将其结果称为布尔值。
案例
public class BooleanDemo {
public static void main(String[] args) {
boolean flag = true;
if(flag){
System.out.println("一祥集团:www.yix.com");
}
}
}
一祥集团:www.yix.com
String 字符串
字符串(String)是一种特殊的结构类型,利用字符串可以实现多个字符内容的定义,在 Java 中需要通过""定义字符串常量,虽然字符串属于引用数据类型,但是其却可以像基本数据类型那样进行操作.
案例
public class StringDemo {
public static void main(String[] args) {
String str = "一项集团:";
str = str + "www.yix.com";
System.out.println(str);
String msg = "数据输出:";
System.out.println(msg + 1);
System.out.println(msg + 1.1);
System.out.println(msg + 'Y');
System.out.println(msg + true);
//转义字符
String p = "木有科技:\"www.yix.com\"\n" + "讲师:王大祥老师\t江湖人称:\'小李老师\'";
System.out.println(p);
}
}
一项集团:www.yix.com
数据输出:1
数据输出:1.1
数据输出:Y
数据输出:true
木有科技:"www.yix.com"
讲师:王大祥老师 江湖人称:'小李老师'
var 关键字
Java 本身属于一门静态编程语言,在进行各个变量定义的时候就必须明确的声明变量的类型以及变量的具体内容,但是随着当今时代编程语言技术的发展,供了推断式变量的定义已经被广泛的使用,所以从 JDK110 版本开始之后,Java 提供了一个新的 var 关键字,利用此关键字可以实现变量的定义,而对于变量的数据类型则会根据所赋予的内容动态定义。
案例
public class VarDemo {
public static void main(String[] args) {
var v_a = 10.2;
var v_b = 3;
System.out.println(v_a - v_b);
var msg = "一祥:www.yix.com";
System.out.println(msg);
}
}
7.199999999999999
一祥:www.yix.com
运算符
Java 中的语句有很多种形式,表达式就是其中的一种形式。表达式由操作数与运算符组成:操作数可以是常量、变量或方法,而运算符就是数学中的运算符号“%”等。以表达式“z+10”为例,Z 与 10 都是操作数,而“+”就是指大 1 运算符
自增自减
计算机拥有完善的操作逻辑,所以在数据计算的过程之中就有可能需要进行累加或累减处理操作,传统的做法使用的是“变量+1”或“变量-1”的语法操作,而为了简化这样的操作(同时也为了提升操作性能),所以在 Java 中提供有自增(数字+1)与自减的(数字-1)的操作运算符
案例
public class ZZDemo {
public static void main(String[] args) {
int bf_a = 10;
int bf_b = 5;
int bf_re = bf_a + ++bf_b;
System.out.println("计算结果:" + bf_re);
System.out.println("a:" + bf_a + ";b:" + bf_b);
int af_a = 10;
int af_b = 5;
int af_re = af_a + af_b--;
System.out.println("计算结果:" + af_re);
System.out.println("a:" + af_a + ";b:" + af_b);
}
}
计算结果:16
a:10;b:6
计算结果:15
a:10;b:4
关系运算符
|| && !
三目运算符
在进行程序开发的时候三目运算符使用的非常多,而且合理地利用三目运算可以减少一些判断逻辑的编写。三目是一种所谓的赋值运算处理。它是需要设置一个逻辑关系的判新之后才可以进行的赋值操作,基本语法如下:
案例
public class SanDemo {
public static void main(String[] args) {
int a = 10;
int b = 22;
int max = a > b ? a : b;
System.out.println(max);
}
}
22