Java
Java的基本程序设计结构
前言
提示:本文介绍Java的基本程序设计结构
提示:以下是本篇文章正文内容,下面案例可供参考
一、一个简单的Java应用程序
代码如下:
public class Hello {
public static void main(String[] args){
System.out.println("Hello Everyone!!!");
}
}
- public: 访问修饰符,用于控制程序的其他部分对这段代码的访问级别。
- class: 表明Java程序中的全部内容都包含在类中,只需将类作为一个加载程序逻辑的容器,程序逻辑定义了应用程序的行为。
- Hello: 类名
标准的命名规则:
- 必须以大写字母开头的名词,如果多个单词组成,则每个单词的第一个字母都应该大写;
- 长度无限制;
- 不能使用Java保留字;
- 在一个单词中间使用大写字母的方式称为“骆驼命名法”(驼峰命名法)
,如stuName。
注意:
- 源代码的文件名必须与公共类的名字相同,并用 .java 作为扩展名。
- 类的源文件中必须包含一个main方法。
- mian方法必须声明为public,在Java SE 1.4及以后的版本中强制main方法时public的。
{
System.out.println("Hello Everyone!!!");
}
注释:一对大括号表示方法体的开始与结束,这里使用了System.out对象并调用了他的println方法,Java使用的通用语法是object.method(parameters)
二、注释
在Java中,有3种标记注释的方式。
- //:其注释内容从//开始,到本行结束
- /* */:将一段较长的内容注释
- 以/*开始,以/结束:可以用来自动生成文档
public class Hello {
/**
*
* @param args
*/
public static void main(String[] args)
{
System.out.println("Hello Everyone!!!"); //输出“Hello Everyone!!!”,并换行
/*
System.out.println("Hello Everyone!!!");
System.out.println("Hello Everyone!!!");
System.out.println("Hello Everyone!!!");
*/
}
}
警告:在Java中,/* */不能嵌套。
三、数据类型
在Java中,一共有8种基本类型(primitive type),其中4种整型、2种浮点类型、1种用于表示Unicode编码的字符单元的字符类型char和一种用于表示真值的boolean类型。
1.整型
类型 | 存储需求 | 取值范围 |
---|---|---|
byte | 1字节 | -128~127 |
short | 2字节 | -32768~32767 |
int | 4字节 | 超过20亿 |
long | 8字节 | 如果要表示的是long类型的字面值必须 在数字后面加个L或者l |
注意:Java没有任何无符号(unsigned)形式的int、long、short或byte类型。
示例:
byte a = 100;
// byte b = 200; //报错,超出范围
short c = 200;
long d = 100000000000L;
2.浮点类型
类型 | 存储需求 | 注意 |
---|---|---|
float | 4字节 | 如果要表示的是float类型的字面值必须 在数字后面加个F或者f |
double | 8字节 | 没有后缀F的浮点数值默认为double类型,如3.14 |
示例:
double a = 54.32;
float b = 54.32f;
3.char类型
char类型的字面量值要用单引号括起来。
例如:'A’是编码值为65所对应的字符常量,与"A"不同,"A"是包含一个字符A的字符串。
特殊字符的转义序列
转义序列 | 名称 | Unicode值 |
---|---|---|
\b | 退格 | \u0008 |
\t | 制表 | \u0009 |
\n | 换行 | \u000d |
\" | 双引号 | \u0022 |
\’ | 单引号 | \u0027 |
\\ | 反斜杠 | \u005c |
//字符类型: char 只能包含一个字符,一对单引号表示char类型内容
//代表的是一个16位(2字节)的unicode字符集的字符
//GBK字符集:中国标准 一个中文占用2个字节
//UTF-8字符集:unicode扩展来的 全世界统一的编码字符集 一个中文占用3个字节
//cahr有对应的一个数值0~65535
char a = 'a';
int x = a;
System.out.println(x); //97
char b = '好';
int y = b;
System.out.println(y); //22909
char c = '6';
int z = c;
System.out.println(z); //54
System.out.println("==============================");
int sum = 3 + 'a'; //编译器可以直接得到计算结果,可以在判断结果的大小没有超过char的表数范围
System.out.println(sum); //100
char m = 3 + 'a'; //字符常量a
System.out.println(m); //d
char aa = 'c';
// m =3+aa; //字符变量aa,编译阶段只能判断变量的类型
m = (char) (3 + aa);
System.out.println(m); //f
System.out.println("==============================");
//char可以表示为一个字符,也可以表示一个数字 0~65535
char m1 = 100;
System.out.println(m1); //d
//char可以表示特殊字符
char x1 = '\'';
x1 = '\\';
x1 = '\n'; //换行符
System.out.println(x1);
//char可以表示 特定的unicode字符
char s1 = '\u0041'; //代表的字符A
System.out.println(s1);
4.boolean类型
boolean(布尔)类型有两个值:true和false,用来判定逻辑条件。整型值和布尔值之间不能进行相互转换。
示例:
boolean a = true;
四、变量
在Java中,每个变量都有一个类型。在声明变量时,变量的类型位于变量名之前。
示例:
double salary;
int vacationDays;
long earthPopulation;
boolean done;
变量名命名规则:
- 必须以字母开头并由字母或数字构成的序列;字母包括大小写字母、下划线、$、在某种语言中表示字母的任何Unicode字符。
- 区分大小写
- 不能使用Java保留字
- 不能有空格
- 驼峰命名法、见名知意
提示:可以使用Character类的isJavaIdentifierStart和isJavaIdentifierPart方法来检查Unicode字符是否属于Java中的"字母"。
1.变量初始化
int vacationDays = 7;
声明一个变量之后,必须用赋值语句对变量进行显示初始化;
使用前必须初始化,否则编译器会报错。
2.常量
在Java中,用关键字final指示常量。
public class Constants {
public static void main(String[] args) {
final double PI =3.14;
double circleR = 2;
double circleArea = PI * circleR * circleR;
System.out.println("半径为" + circleR + "的圆面积为:" + circleArea);
}
}
习惯上,常量名使用全大写。
五、运算符
在Java中,使用算术运算符、赋值运算符、比较运算符、逻辑运算符、条件运算符。
1.数学函数
在Math类中,包含了各种各样的数学函数。
数学函数 | 功能 |
---|---|
Math.sqrt(x) | x的平方根 |
Math.pow(x,a) | x的a次幂 |
Math.exp() | 指数函数 |
Math.log() | 对数函数 |
Math.PI | Π的近似值 |
Math.E | e的近似值 |
随机数:
// Math.random() 方法:得到[0,1)的一个小数
double random = Math.random();
System.out.println("随机小数"+random);
//随机获取一个[0,10]的整数
int a=(int)(Math.random()*11);
System.out.println("a="+a);
// 随机获取一个[1,105]的整数
int b=(int)(Math.random()*105+1);
System.out.println("b="+b);
提示:可在源文件的顶部加上"import static java.lang.math.*",不必再加前缀"Math."。
2.数值类型之间的转换
6个实心箭头表示无信息丢失的转换,3个虚线箭头表示可能有精度丢失的转换。
3.强制类型转换
语法格式:在圆括号中给出想要转换的目标类型,后面紧跟待转换的变量名。
示例:
double x=3.1415926;
int xx=(int)x;
4.运算符
4.1 算术运算符
+、-、*、/、%
// %取模:即取余数,用绝对值求值,符号看%前面的参数
System.out.println(5 % 2); //1
System.out.println(-5 % 2); //-1
System.out.println(5 % -2); //1
System.out.println(-5 % -2); //-1
注意:整数被0除将会产生异常,而浮点数被0除将会得到无穷大或NaN结果。
4.2 赋值运算符
+=、-+、*=、/=
int x = 2;
x += 4; //把等号左右两侧的参数相加,然后吧结果赋值给等号的左侧
System.out.println("x=" + x); //x=6
int a = 10;
a += a -= a - a;
// a=a+(a-=a-a)
// a=a+(a=(a-a+a))
// a=a+a
System.out.println("a=" + a); //a=20
4.3 自增、自减运算符
++、- -
// ++自增 --自减
int a = 1;
System.out.println(a++); // 1
System.out.println(++a); // 3
int x = 5;
int y = 5;
int m = 2 * ++x; //12
int n = 2 * y++; //10
System.out.println("m=" + m + ",n=" + n);
4.4 比较运算符
、!= 、>、 >=、 <、 <= 返回结果是boolean类型
int a = 10;
int b = 20;
System.out.println(a == b); //fasle
System.out.println(a != b); //true
System.out.println(a > b); //false
System.out.println(a < b); //true
4.5 逻辑运算符
&&、||、!
int x = 2;
System.out.println(x >= 3 && x <= 6); //false
boolean flag = 1 > 2 && 2 > (3 / 0);
System.out.println("flag=" + flag); //flag=false
逻辑运算符的短路现象:
1.a && b 如果a是false 不会执行b
2.a || b 如果a是true 不会执行b
4.6条件运算符
语法格式:表达式 ? 代码1 : 代码2
如果表达式为true则执行代码1 否则执行代码2
int x = 1;
int y = 2;
int result = x>y?x:y; //返回二者较大的数
六、字符串
在标准Java类库中提供了一个预定义类,叫String。每个用双引号括起来的字符串都是String类的一个实例。
String e = " ";
String greeting = "hello";
1.子串
String类的substring方法可以从一个较大的字符串提取一个子串。
String greeting = "hello";
String s = greeting.substring(0,3); //"hel"
注意:substring()方法的第二个参数是不想复制的第一个位置。
2.拼接
//字符串 + 任意类型 = 字符串
// + 为拼接字符串
String s="a";
System.out.println(s + a); //a10
//java课程考试最高分:98.5分
double score=98.5;
System.out.println("java课程考试最高分:"+score+"分");
3.检测字符串是否相等
表达式:s.equals(t);
如果字符串s与字符串t相等,则返回true;否则,返回false。