JavaSE-基本程序设计结构(上)
Posted Jack·Kwok
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE-基本程序设计结构(上)相关的知识,希望对你有一定的参考价值。
1. 注释
和大多数程序设计语言一样,写在程序中,方便理解代码,但不会被执行。Java中表示注释的方式有三种
1.1. 单行注释
1.1.1. 规则
格式:
//...
//输出你好的英文
System.out.println("Hello World");
1.2. 多行注释
1.2.1. 规则
格式:
/*
...
*/
/*
输出你好的英文
one line
two line
...
many line
可以写很多行的注释呢!!
*/
System.out.println("Hello World");
1.3. 文档注释
1.3.1 规则
格式:
/**
...
*/
/**
* @ClassName Me
* @Description TODO
* @Author jiaqi
* @Date 2021/5/21 17:04
* @Version 1.0
**/
public class Me {
/**
* @Author Jiaqi
* @Description //TODO
* @Date 17:06 2021/5/21
* @Param [str]
* @return int
**/
public int inFor(String str){
return str.length();
}
}
1.3.2. 命令行执行(doc窗口)
文档注释可以在javadoc工具中生成文档,其方法如下:
命令行:
进入到需要生成文档的java文件的路径,执行命令
javadoc -d apidoc *.java
参数解释:javadoc命令支持通配符,例如使用*.java来代表当前路径下的所有java源文件,javadoc常用的选项有如下几个:
-d : 该选项指定一个路径,用于将生成的API文档放到指定的目录下,在这里表示生成一个apidoc文件夹,并在其中生成注释文档。
*.java 表示匹配java文件
1.3.3. 可视化执行(IDEA)
使用命令行去生成文档显然有很多弊端,例如需要再每个类或者方法上重复写各种相同的信息等等 在IDEA中则可以通过配置模板并通过快捷键生成。
1.3.3.1. 类模板
1.idea中打开:File–>settings–>Editor–>File and Code Templates–>Files,选择class文件
2.插入模板
/**
*@ClassName ${NAME}
*@Description TODO
*@Author ${USER}
*@Date ${DATE} ${TIME}
*@Version 1.0
**/
其中Name属性必须与下面的类名一样,生成的时候是根据类名去生成的,USER、DATE、TIME则会从你的系统中获取(USER是你电脑对应的用户名)
1.3.3.2. 方法模板
1.idea中打开 File–>Settings–>Editor–>Live Templates
2. 新建group,名字随意,可为myDefine,确认
3. 在这个组下面新建一个live template,名字为*,(注意这里不要取别的名字,方便后面快捷键的使用)
4. 输入方法模板:
*
* @Author your name
* @Description //TODO $end$
* @Date $time$ $date$
* @Param $param$
* @return $return$
**/
5. 这时候下方会显示黄色感叹号,点击define,选择EveryWhere–>Java,确定
6. 设置参数Edit variables,输入对应的函数实现。
从这以后,新建的类将会自动生成类模板的文档注释;写好方法后,输入/**+快捷键Enter,就可以生成。
2. 数据类型
2.1. 介绍
Java中总共有8种数据类型,4种整型、2种浮点类型、1种字符类型和1种表示真值的类型。
2.2. 整型
类型 | 存储范围 | 备注 |
---|---|---|
int | 4字节 | 最常用(十六进制前缀为0x)或0X、八进制前缀为0 |
short | 2字节 | |
long | 8字节 | 后缀有L或l |
byte | 1字节 |
2.3. 浮点类型
类型 | 存储范围 | 备注 |
---|---|---|
float | 4字节 | 后缀为f或F |
double | 8字节 | 最常用 |
2.4. char类型
public class Me {
public static void main(String[] args) {
char a = 'a';
char b = '4';
System.out.println(a);//'a'的Ascii值为97
System.out.println(b);//'4'的Ascii值为52
System.out.println(a+b);//97+52
System.out.println(a+4);//97+4
}
}
2.5. boolean类型
boolean类型有false和true两个值,用来判定逻辑对与错。
注:整型和布尔值不能进行相互转换
3. 变量与常亮
3.1. 声明变量
double d;
int i;
long lo;
boolean b;
int k,d;
变量名必须是一个以字母开头并由数字或字母构成的序列
其中,字母包括大小写字母,美元符和下划线。且Java保留字不能作为变量名
3.2. 变量初始化
int dv = 5;
或
int dv;
dv = 5;
3.3. 常量
public static final double TU_AE_HY = 2.34;
3.4 枚举类型
有时候,我们对一个变量所需要的值是有限的,则这个时候我们就需要用到枚举类。
enum Sub{CHINESE,ENGLISH,MATH}
Sub s = Sub.MATH;
4. 运算符
4.1. 算数运算符
+ - * / % 分别表示加减乘除和求余(取模)
注:除法运算参与运算的两个数都为整数时,表示整数除法,否则表示浮点数除法。整型除以0会报错,浮点数除以0则会表示无穷。
System.out.println(24/5);//结果为4
System.out.println(11%4);//结果为3
4.2. 数学函数与常量
Java中包含了一个Math类,其中包含了各种各样的数学函数。
public class Me {
public static void main(String[] args) {
//求23.4的sin值
Math.sin(23.4);
Math.cos(22.3);
Math.tan(12.6);
//计算3.4的atan值
Math.atan(3.4);
Math.atan2(2.3,4.3);
Math.exp(3);
Math.log10(3);
System.out.println(Math.PI);
System.out.println(Math.E);
Math.sqrt(3);
Math.pow(3,2);
}
}
4.3. 数值类型之间的转换
上图实线表示转换后不会导致信息丢失,虚线表示转换会有一定精度的损失。
int n = 123456;
float f = n;//int类型转换为float,结果为1.23456;
4.4. 强制类型转换
由上面图我们可以看到,只有int转为double,而double转为int没有显示箭头,这个时候则需要强制类型转换。如下
double x = 3.45
int i = (int)x;//i = 3
4.5. 结合赋值和运算符
x=x+4;
x+=4;
以上两行代码的效果是一样的,都是先将x加4然后再赋值给x。同理,也有x-=4;x*=4;
等等
4.6. 自增与自减运算符
n++;
++n;
以上两个语句都是表示对n加1,但遇到赋值语句时,第一句表示先赋值再自增;第二句语句表示先自增再赋值;
int m = 7;
int n = 7;
int a = 2 * ++m;// a = 16,m = 8
int b = 2 * n++;// b = 14,n = 8
4.7. 关系和boolean运算符
== != < > >= <= && ||
分别表示等于 不等于 小于 大于 大于或等于 小于或等于 和 或
三元操作符:
语法:条件 ? 值1:值2
如果表达式为true,表达式的值为值1;否则为值2。
4.8. 括号与运算符级别
5. 字符串
5.1. 主要用法
public class Me {
public static void main(String[] args) {
//定义一个字符串
String n = "hi";
System.out.println(n);
//定义一个空字符串
String n1 = "";
System.out.println(n1);
//获取一个子串(substring第一个参数表示索引为0,
// 二个参数表示不想复制的第一个位置)
String father = "father";
String substring = father.substring(0, 3);
System.out.println(substring);
//拼接字符串
String a1 = "i am ";
String a2 = "a student";
System.out.println(a1+a2);
//判断字符串是否相等
String you = "you";
String me = "me";
System.out.println(you.equals(me));
//不区分大小写的判断字符串是否相等
String you1 = "you";
String you2 = "YoU";
System.out.println(you1.equals(you2));
//千万不可以用==判断两个字符串是否相等
//判断是否为空串
String a ="";
System.out.println(a.equals(""));
System.out.println(a.length()==0);
//判断是否为null
String kk= null;
System.out.println(kk ==null);
//判断一个字符串既不是空串也不是null
String dd = "dd";
System.out.println(dd.length()!=0 && dd!=null);
//获取字符串的长度、获取它的指定字符
String ff = "abc";
System.out.println(ff.length());
System.out.println(ff.charAt(2));
//替换字符串,用uu代替字符串re中的所有tt
String re = "guottdd";
System.out.println(re.replace("tt","uu"));
}
}
运行结果
5.2. 构建字符串
我们都知道String是不可改变的,每一次的“改变”实际上是重新创建字符串并赋值而已,这是一个优点,但在有些场合确实不太合适。例如在读取文件的时候,如果用String存储,每次读取的内容都必须“拼接”到旧字符串的后面,这实际上是重新创建了一个新的字符串,效率很低。又浪费空间。所以我们在这种场合,我们使用StringBuilder类。
public class Me {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("hello");
sb.append("mybaby");
System.out.println(sb.toString());
//求sb长度
System.out.println(sb.length());
//将指定位置设置指定的值
sb.setCharAt(2,'y');
System.out.println(sb);
//在指定位置插入一个字符串或一个字符
sb.insert(3,"uu");
System.out.println(sb);
sb.insert(6,'r');
System.out.println(sb);
//删除指定范围的值
sb.delete(4,7);
System.out.println(sb);
}
}
运行结果
以上是关于JavaSE-基本程序设计结构(上)的主要内容,如果未能解决你的问题,请参考以下文章