Java SE基础(一)简介及语法
Java语言背景
Java之父:詹姆斯·高斯林。
Java由Sun公司推出,后被Oracle收购。
JavaME可以做嵌入式设备的软件开发,如:开发老诺基亚手机的塞班系统应用。现已被淘汰。
Java EE用作B/S架构的web开发及服务器后台开发。
JavaSE是基础,可以用来做桌面开发、大数据开发等。大数据开发的架构很多都是由Java开发的。
Java语言跨平台原理
Java语言是一次编译到处运行。跨平台是由于不同平台具有不同的JVM(Java虚拟机),JVM本身是不能跨平台的。
编写Java
简单的程序可以将写好文本内容的txt改后缀为Java即可。JRE为JVM+Java核心类库。
编译Java
需要用到JDK。JDK为JRE+开发工具。开发工具包含有编译工具(javac)。
运行Java
需要Jre。JRE中包含运行工具(java)。
JDK、JRE与JVM
JDK包含JRE及开发工具。JRE包含JVM及Java核心类库。
Java编写HelloWorld
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Java语法与C#大体相同。
在txt写好后改后缀为HelloWorld.java(注意:文件名需与类名一字不差,否则会报错)。
使用win+r输入cmd
进入cmd模式,E:
进入E盘符,dir
及cd 目录名
进入该java文件的目录,使用javac HelloWorld.java
编译成机器码,可以发现该文件夹内出现了HelloWorld.class,使用java HelloWorld
回车即可执行。发现cmd中出现了HelloWorld字眼。
也可以使用Notepad++,在设置首选项中进行如图所示的设置。写好Java代码后在此处右键,使用命令行打开,打开后的cmd已经将目录切换为该java文件所在的目录。
Java中的常量
字符串常量
使用 "内容"
格式,利用英文双引号将内容引起来,内容可以是中文。
字符常量
用 '内容'
格式,利用英文单引号将内容引起来,内容可以是中文。但内容只能是一个字符,如 “A”,‘a’,‘啊’。
整数常量
固定不变的整数,如:55555。
小数常量
固定不变的小数,如:12345.654321。
布尔常量
类型boolean,值只有true与false。
空常量
null不能使用println单独打印!!!
Java中的变量
Java为强类型语言,不可以像C#中使用var(Java10以后可以)。
Java的数据类型
基本数据类型
数值型
浮点数:float,double。
字符:char。
整数
byte,short,int,long。与嵌入式C中的int不同,嵌入式C的int最大为65535,Java的整数默认为int(32位),使用long需要在数字后+L或l。由于l易与1混淆,一般选用 数字+L 的格式。
浮点数
float,double。默认为double,使用float需在小数后+F或者f。
字符
char。
非数值型
布尔
引用数据类型
类
接口
数组
Java中的标识符
标识符是用来给变量、方法、类取名的符号。
只能由 数字、英文字母(区分大小写)、下划线_、美刀$ 组成。不能由数字开头,也不能用关键字当标识符。
一般用Pascal命名法,或者驼峰法(小驼峰法:首字母小写,后边单词的首字母大写,常用于方法/变量。大驼峰法:首字母与后续单词的首字母都大写,常用于类的命名)。
Java键盘录入
Java不能直接读取键盘,需要先引入包,再创建对象及获取数值。
//导入包
import java.util.Scanner;
//创建对象
Scanner sc = new Scanner(System.in);
//接收数据
int a = sc.nextInt();
小试身手
输出随机数及计算平均值。
//导入包
import java.util.Scanner;
public class test0002{
public static void main(String[] args){
System.out.println("Hello World1");
int num=0;
double sum=0.0,avg=0;
System.out.print("本程序用来输出随机数,输入随机次数");
//创建对象
Scanner sc = new Scanner(System.in);
//接收数据
int counter = sc.nextInt();
System.out.println("随机次数="+counter+"/n");
System.out.print("本程序用来输出随机数,输入最大随机数");
//Scanner sc = new Scanner(System.in);
int maxrandom = sc.nextInt();
System.out.println("随机次数="+maxrandom+"/n");
for (int i = 1; i <= counter; i++) {
//2.获取随机数, 并打印
//随机输出1~maxrandom的整数
num = (int)(Math.random()*maxrandom + 1);
System.out.println("第"+i+"次随机数:"+num+"\n");
sum+=num;
System.out.print("第"+i+"次总和:"+sum+"\n");
avg=sum/i;
System.out.print("第"+i+"次局部平均值:"+avg);
System.out.println();
}
System.out.print("最终平均值="+avg);
}}
我使用
javac test0002.java
java test0002
pause
重命名为run.bat,即可双击执行相同目录下test0002.java的编译及test0002.class的运行。
//导入包
import java.util.Scanner;
public class test0002{
public static void main(String[] args){
System.out.println("Hello World1");
int num=0;
double sum=0.0,avg=0;
//System.out.print("本程序用来输出随机数,输入随机次数");
//创建对象
Scanner sc = new Scanner(System.in);
while (true) {
//接收数据
System.out.print("本程序用来输出随机数,输入随机次数");
int counter = sc.nextInt();
System.out.println("随机次数="+counter);
System.out.print("本程序用来输出随机数,输入最大随机数");
//Scanner sc = new Scanner(System.in);
int maxrandom = sc.nextInt();
System.out.println("随机次数="+maxrandom);
if(counter>=59999) {
break;
}
num=0;
sum=0.0;avg=0;
for (int i = 1; i <= counter; i++) {
//2.获取随机数, 并打印
//随机输出1~maxrandom的整数
num = (int)(Math.random()*maxrandom + 1);
System.out.print("第"+i+"次随机数:"+num);
sum+=num;
System.out.print("第"+i+"次总和:"+sum);
avg=sum/i;
System.out.print("第"+i+"次局部平均值:"+avg);
System.out.println();
}
System.out.print("最终平均值="+avg);
}}}
也可以加入一个while的死循环,方便多次测试。跳出死循环的条件我选择循环次数>=59999。