知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技

第一章,Java程序设计概述(详细解释,详细的代码例题)

发表时间:2022-03-24来源:网络

1.1,Java语言简介。

1.Java的发展历史

年份大事记1990由Sun公司开始“绿”(Green)计划, Green计划主要致力于智能家电(如微波炉)的程序设计的研究,最初使用的是C++语言1991-1993Green计划的负责人James Gosling创造了一种全新的语言:0ak语言,来解决C++的潜在安全问题。Oak语言跨平台、精巧、安全。1994Green计划投入发展www,并推出了与Oak语言相配合的浏览器WebRunner,也就是HotJava的前身。由于Oak已被一家显卡制造商注册, Oak改名为Java。1995Java和HotJava浏览器在SunWorld大会上第一次公开发布,Java语言从此诞生 。1996第一个JDK:JDK1.0诞生10个最主要的操作系统供应商声明将在他们的产品中嵌入Java技术。 Microsoft IE开始支持Java,Java在互联网上快速发展,进入Java快速发展时期。1997JDK1.1发布1998发布了JDK1.2,开始使用“Java 2” 这一名称1999发布Java的三个版本:标准版、企业版和微型版2000.3JDK1.3发布,紧接着又发布了JDK1.42001J2EE1.3发布2002.2J2EE1.4发布2004.4J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.02006.12Java SE 6.0正式版发布2011.7Java 7.0正式版发布2014.3Java 8.0正式版发布2017.9Java 9正式版发布2018.3Java 10 正式发布2018.9Java 11 正式发布20193月Java 12 正式发布,9月17日Java 13 正式发布20203月17日Java 14 正式发布,9月15日java 15正式发布

Java之父:James Gosling




2.JDK和JRE
   JRE:Java Runtime Environment (Java执行环境)
仅包含运行Java程序所需要的部分(包括Java虚拟机JVM 和Java程序所需的核心类库等)如果只需要运行一个开发好的Java程序,计算机中只需要安装JRE就可以了。
   JDK:Java Development Kit (Java开发工具包)
其中包含了开发Java程序以及运行Java程序所需要的部分 (如:编译工具javac.exe、解释器java.exe、调试工具jdb.exe、打包工具jar.exe等)
JDK中包含了JRE 使用JDK开发完成的Java程序,交给JRE去执行。




3.Java的平台结构:
Java SE:Java Platform, Standard Edition
      标准版,桌面系统和低端商务应用
Java EE:Java Platform, Enterprise Edition
     企业版,企业环境的服务器端的应用程序开发
Java ME:Java Platform, Micro Edition
     小型版,移动设备和嵌入式设备上的应用开发
注: Java5.0版本前,分别称做J2SE,J2EE,J2ME



4.Java语言的特点:
      ·简单易学
      ·安全性
      ·平台无关性
      ·多线程机制
      ·面向对象

   Java平台无关性:通过Java语言编写的应用程序,编译完成后,在不同的系统(如安装Win10的X86_64计算机平台或安装Linux的i386计算机平台)上都可以运行。

   Java平台的工作原理:只要在需要运行java应用程序的计算机上先安装一个Java虚拟机JVM ( Java Virtual Machine)即可。用户编写Java源程序,源程序文件名的后缀为.java;编译使.java的源文件生成一个后缀为.class的字节码文件;再由Java的专用程序解释执行.class文件
JVM来负责解释执行.class文件。

1.2,Java程序的开发环境

   1.安装Java SE平台
   去Oracle官网下载:www.oracle.com

安装完成之后,记得记下安装在那个目录下面。

2.JDK的目录结构

bin目录:存放JDK的工具和实用程序(如编译器javac.exe,解释器java.exe等)。
jre目录:Java执行环境,包括Java虚拟机、类库以及其他支持执行Java程序的文件。
lib目录:存放开发工具所需要的其他类库(附加库)和支持文件。
src.zip:Java核心API的所有类的Java源程序文件(包括java.*、javax.*和某些org.*包的源文件)。注意:较高版本的src.zip位于lib目录下。
3.JDK的配置
为了在任何目录下都能使用JDK进行java源程序的编译、java字节码文件的解释运行等工作,须在系统或用户的环境变量PATH中增加jdk安装目录中的bin目录的路径名:
右键点击桌面的“计算机”,再依次选择“属性”、“高级系统设置” 。

在“系统属性”对话框中,单击“高级”选项卡中的“环境变量”按钮,打开“环境变量”对话框;


然后在administrator的用户变量里 新建一个path变量
把JDK的bin目录的路径名添加到PATH的变量值中,与其他路径之间用分号分隔。

然后点击确定就完事了。

环境变量的classpath的设置
  设置classpath的目的是为了让Java执行环境找到指定的Java程序(也就是.class文件) JDK1.5开始,JRE默认会到当前工作目录下寻找用户的Java程序;并到JDK安装目录的相应lib目录中找Java类库中的Java程序;但如果想要JRE找到位于非当前目录下的、Java程序运行时所需要的用户类,则须在环境变量classpath中添加该目录的路径名

JVM(Java虚拟机)查找用户类文件的顺序
  1.如果没有配置classpath环境变量,JVM只在当前目录下查找要运行的class文件;
  2.如果配置了classpath环境变量,JVM会先到classpath环境变量中设置的目录中查找要运行的类文件;
  3.如果classpath环境变量的值以分号结尾,那么JVM在classpath目录下没有找到要指定的类文件时,会去当前目录下查找;
  4.否则,如果classpath环境变量值的结尾处没有分号,那么JVM在classpath目录下没有找到要指定的类文件时,不会去当前目录下查找。
4.初识Java程序
Java程序的开发步骤

将Java代码编写到扩展名为.java的文件中。通过javac命令对.java源程序进行编译,生成.class字节码文件。运行.class文件。
例1.1 输出“Hello World!”字符串。class HelloWorld 3 { 4 public static void main(String args[]) 5 { 6 System.out.println("Hello World!"); 7 } 8 }

类、类声明和类体

类名为 class后面的 HelloWorld

方法

方法是实现某个特定功能的程序段;main方法是所有Java应用程序执行的入口;一个方法可被他人调用,以完成所需的相应的功能。

main方法中调用了系统提供的System.out.println()方法,该方法在控制台窗口中输出字符串“Hello World!“。




第一步 编辑程序。
选择任何一种编辑器,如记事本。
通过编辑器输入代码
//HelloWorld.java
public class HelloWorld
{
public static void main (String args[])
{
System.out.println(“Hello World!”);
}
}
将代码保存到HelloWorld.java文件中,这个存放java代码的文件被称为Java源文件。
源文件存放路径没有特殊的要求,但源文件名有要求。

源文件的命名规定:

如果源文件中有多个类,那么只能有一个类是public类;如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同;如果源文件没有public类,那么源文件的名字只要和某个类的名字相同即可。java源文件的扩展名为“.java”。

第二步 ,编译程序:



在命令行窗口中,可通过“盘符:”进行磁盘间的切换;
可通过cd命令修改当前目录,
通过dir命令可以列出某个目录下有哪些子目录和文件

进入HelloWorld.java文件所在的目录(D盘的\myjava\ch1\ex1)

用dir命令查看当前目录下有什么文件和子目录

用cd命令进入HelloWorld.java文件所在的目录,将源程序通过javac编译工具进行编译。

如果程序没有错误,则编译过程中不会有任何提示,并会在当前目录下生成一个HelloWorld.class文件,这个文件称为字节码文件,它就是一个可执行的Java程序。

第三步,运行程序:

一个Java应用程序必须有一个类含有public static void main(String args[ ])方法,称这个类是应用程序的主类。Java应用程序使用Java解释器(java.exe)来解释执行其字节码文件,而且总是从主类的main方法开始执行。在主类字节码文件所在的目录下,使用:Java 主类字节码文件名 便可运行Java应用程序 。
注意
… HelloWorld 不能带扩展名;
… HelloWorld 不能带目录。

1.3,Java程序的基本数据类型

1.标识符与关键字
关键词(系统标识符)
关键词是指高级语言中具有特定用途或被赋予特定意义的一些单词。
Java语言中定义的50个关键字:
关键字全部是小写字母

用户标识符(简称 标识符)
用来对程序中的各个元素(如:类、变量、方法、数组等)加以命名,简单地说,标识符就是一个名字 。

标识符由字母(az、AZ、汉字)、下划线(_)、美元符($)和数字(0~9)组成,长度不受限制;标识符的第一个字符不能是数字字符,而必须以字母、下划线或美元符号打头;标识符不能是关键字;标识符不能是true、false和null(它们为Java定义的值);Java对字母大小写敏感。

Java程序中标识符的一些约定
① 为了提高程序的可读性,要做到“见名知义”
如,maxValue,numOfStudents
② 包名:多单词组成时所有字母都小写。
xxxyyyzzz
③ 类名和接口名:多单词组成时,所有单词的首字母大写。
XxxYyyZzz
④ 变量名和函数名:多单词组成时,第一个单词首字母小写,第二 个单词开始每个单词首字母大写。
xxxYyyZzz
⑤ 常量名:所有字母都大写。多单词时每个单词用下划线连接。
XXX_YYY_ZZZ

2.基本数据类型
Java语言是强类型语言,对于每一种数据都定义了明确的数据类型,并为它们在内存中分配不同大小的空间。

整数类型(byte、short、 int、 long)

在Java代码中出现的整数常量都是int类型若想表示long类型的整数常量需附加一个后缀L或l,如30L十六进制的数以前缀0x或0X开始,如0x10表示16八进制的数以前缀0开始,如010表示8整数变量的声明
例如:
数据类型 变量名;
数据类型 变量名 = 初始化值;
int x= 12,平均=98,jiafei;
short i=3;//注意范围
long hight=4196L;

浮点类型(float、double)

在Java代码中出现的浮点数常量都是double类型若需要表示float类型数,需添加后缀F或f,如:231.0f可以使用科学计数法表示浮点数,如12.3e2浮点类型变量声明
例如:
float x=22.76f, weight=1e-12F;
double height=23.345,width=34.56D;
double length=1e12,total;

字符类型(char)

Java字符采用Unicode码表示,占16位存储空间,其中存放的是对应字符的Unicode码值;字符类型的常量是由一对单引号括起来的单个字符:与字符串的区别(由一对双引号括起来的字符序列表示字符串)
‘a’ , ‘你’——字符类型的常量
“a”——含有一个字符’a’的字符串。字符变量的定义
例如:
char ch= ‘a’,home= ‘家’,handsome= ‘酷’;
char myChar;

转义字符
        一些字符(如回车、换行)有特殊的含义,但在程序中无法通过键盘输入的某个看得见的字符表示它们,因此Java语言为这些特殊字符提供了转义字符
       例如:\r(回车),\ n(换行),\b(退格),\t(制表符)
’ (单引号),\” (双引号),\(反斜线)等。

布尔类型(boolean)

用于逻辑条件判断常量:true 和 false变量声明
例如:boolean isMale,found=true,出错=false;不能与其他数据类型转换

3.常量
常量表示不能改变的数值

整数常量:如21, 3L ,0xAB,0100无byte、short类型的整数常量,但可以直接把对应范围内的int类型常量直接赋值给byte、short类型的变量实数常量:如33f,40.1,23e-2, 196.3d布尔型常量:true或 false。字符常量:’ a’ ,’ \n’ ,’ \’字符串常量: “a”, “good”null常量:null.

4.变量
变量的值是可以改变的。

内存中用于保存数值的一个存储区域该区域有自己的名称(变量名)和类型(数据类型)该区域的数据可以在同一类型范围内不断变化变量在使用前都必须声明:指定变量名和变量的类型
typename varName1 , varName2 ;
如:
int numOfStudents, averageScore;通过赋值语句可以修改变量的值
varName = value;
averageScore = 60;
//声明语句和赋值语句也可结合起来
int score = 80;

4.常(变)量
常变量也是一个变量,但一旦被赋值后,其值便不能再做修改。

常变量声明时类型名前需添加关键字final常变量一般采用大写字母命名常变量的初始化,可在变量声明时进行,也可以在变量声明之后进行,但赋值操作只能做一次;
如: final int LENGTH=11 , MAX_NUM=100;
final double PI;
// 其他语句
PI = 3.14;

1.4,Java程序的表达式

1.运算符与表达式
算术运算符 ( +、-、*、/、%、++、–)

算术运算符、运算对象以及园括号可组成算术表达式

算术运算符注意事项

除法运算符应用于两个整数时,结果是整数;若其中有一个操作数是浮点数,则结果是一个浮点数
如,7 / 2 的结果是3,而7.0 / 2.0的结果是3.5除法操作除数为0时,若被除数为整数,则抛出异常;若被除数为浮点数,则结果是无穷大值%不仅可用于整数,也可用于浮点数+ 可以用于加法运算,还可以进行字符串拼接
如"bad"+ " boy"结果"bad boy“

自增自减运算符 ( ++、–)

自增、自减运算符均是一目运算符,运算对象必须是一个整型、浮点型或字符型的变量。出现在变量前,表示先对变量进行自增或自减,然后变量再参加表达式运算;否则,表示在变量参加表达式运算后再进行自增或自减运算

赋值运算符(= 、 +=、 -=、 *=、 /=、 %=、……)


关系运算符(==、!=、、=)

注意: “==”与“=”的区别

逻辑运算符(&、|、^、&&、||、!)

逻辑运算的真值表(p,q为布尔类型的表达式)

&& (优化与) 、||( 优化或)

“&”和“&&”的区别:
&: 左边无论真假,右边都进行运算;
&&: 如果左边为真,右边参与运算,
如果左边为假,那么右边不参与运算。“|”和“||”的区别:
|: 左边无论真假,右边都进行运算;
||: 如果左边为假,右边参与运算,
如果左边为真,那么右边不参与运算。

位运算符(&、|、^、>>、>>>、与>>> 区别
>> 右移时保持符号位不变
>>> 右移时最高位始终补0a=a^b;
b=b^a;
a=a^b; 最后a,b的值变为?

条件运算符(?:)

条件运算符是一个三目运算符,它的使用格式:
(表达式1)?表达式2:表达式3
条件运算符运算的结果:表达式1的类型必须是boolean类型;
如果表达式1为true,则求表达式2的值,并将它作为条件运算的结果;
如果表达式1为false,则求表达式3的值,并将它作为条件运算的结果
如:求x,y两个数中的较大值
max=(x>y)?x:y;

常用运算符优先级

运算符的优先级决定了表达式中运算执行的先后顺序。在编写程序时尽量的使用括号()运算符号来实现想要的运算次序,以免产生难以阅读或含糊不清的计算顺序。运算符的结合性决定了并列的相同级别运算符的先后顺序 。

2.类型转换
Java数据的基本类型(不包括逻辑类型)按精度从“低”到“高”排列:
byte → short → int → long → float → double
char ↗
当把类型级别低的值赋给类型级别高的变量时,系统自动完成数据类型的转换。例如:
float x=100;

当把类型级别高的值赋给类型级别低的变量,或者级别无法判断时,必须使用显式(强制)类型转换运算,具体转换的格式为:
(类型名)要转换的值
例如:
float x = 1.75f;
int i = (int)x;

当把一个int型常量赋值给一个byte、short、char型变量时,不可以超出这些变量的取值范围,否则也必须进行显式类型转换 例如: byte c=23;
byte a=(byte)128;//a=-128;
byte b=(byte)256;//b=0;

算术运算得到的表达式的最低级别是int,要转换成更低的级别必须强制转换
例如: byte b=1;
char c=‘a’;
c=(char)(c+1);
表达式 b+b 的类型是int,而不是byte
表达式 c+1 的类型是int,而不是char两个类型不同的数据进行算术运算时,先按级别从低到高的规则转换成同一种类型(最低类型是int),再运算求值;
例如:
5/2.0 结果是double类型2.5对于包含多个运算符、多种数据类型的复杂表达式,则根据运算的顺序,逐步进行转换 。
强制类型转换的优先级高于算术运算符。

1.5,Java程序的基本输入、输出

1.基本输出
System.out.print( )与System.out.println( )方法
功能:输出字符串、和表达式的值。
有多项内容要输出时,必须使用并置符号 “+”将表达式与字符串并置后一起输出;
一个字符串常量不可以跨行书写。

System.out.printf()方法
格式:System.out.printf(“格式控制部分”,表达式1,表达式2,…);
功能: JDK1.5新增的功能,实现对数据的格式化输出
格式控制部分由格式控制符号和普通的字符组成,普通字符原样输出,格式符号用来输出表达式的值。
格式控制符号:
%d–输出int类型数据值;
%x—以16进制的方式输出int类型数据值;
%c–输出char型数据;
%f–输出浮点型数据,小数部分最多保留6位;
%e—按指数的方式输出浮点型数据;
%s–输出字符串数据。
%b–输出布尔型数据。
%n—输出换行符。

输出数据宽度的控制:%md输出的int型数据占m列;%m.nf输出的浮点型数据占m列,其中小数点后面保留n位。
例子:System.out.printf(“a=%5d,x=%8.2f\n”, 12, 23.78);

格式控制符还可跟一些标志搭配起来使用,常用的标志有:

1.基本输入

System.in.read( )方法
功能:从键盘读取一个字节,返回 0 到 255 范围内的 int 类型的字节值。用Scanner类的方法
可以使用Scanner类创建一个对象:
Scanner reader=new Scanner(System.in);
再用所创建的对象调用下列方法,读取用户输入的数据:
nextBoolean():读一个boolean类型的数据;
nextByte():读一个byte类型的整数;
nextShort() :读一个short类型的整数;
nextInt() :读一个int类型的整数;
nextLong() :读一个long类型的整数;
nextFloat() :读一个float类型的实数;
nextDouble() :读一个double类型的实数;
next():读取一个字符串;
nextLine():读取整个行。
上述方法执行时,程序都会堵塞,以等待用户输入数据,输入由回车确认。
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜