当前位置:文档之家› 2第二讲 Java基础

2第二讲 Java基础

第二讲Java基础

主要内容

?第一部分Java简介

?第二部分Java中的流程控制

java语言简介

?发展简史

?1991 年SUN 微系统公司开发消费电子产品的语言Oak 软件;

?后来Oak 深化为Star Seven(*7);

?1994 年下半年,Internet 的发展,SUN 将Oak 应用于网络技

术。

?1995 年正式发布java 语言,

?后来,Microsoft, IBM,DEC,……

Java的特点

?简单性

?面向对象

?分布性

?鲁棒性(垃圾回收、异常机制等)

?安全性(不支持指针,可防止上病毒)

?体系结构中立(平台无关性)

?可移植性(由于平台无关性、与其它语言的基础);

?解释执行:java源代码编译到Java字节码java解释器(JVM)到机器码

?高性能(与其它解释性执行语言相比)

?多线程

?动态性(透明地增加新的方法)

Java与C/C++比较

?相同之处:

?变量声明、参数传递、操作符、控制语句等方面。

?不同之算:

?不支持全局变量;

?不支持goto语句,通过例外, try…catch…finally来代替;

?不支持指针,不支持对内存的直接操作;

?内存管理,采用垃圾回收机制管理内存;

?类型转换:转换前进行类型相容性检索;

?不支持头文件;

?不支持结构和联合。

Java平台

?工具包:编译器(javac)、解释器(java)、文档生成器(javadoc)和文件打包工具(jar)

?Java运行时环境(JRE)包含了完整的类文件包

?许多主要的浏览器都提供了Java解释器和运行时环境

Java运行环境

?Java程序示例

可单独运行的程序

public class HelloJava{

public static void main(String[] args){

System.out.println(“Hello Java!”);//打印出HelloJava

}

}

Java程序生成方法

?第一步,生成java源程序(可以是任何可编辑文本文件的编辑器,注意保存时

将文件扩名放为.java)

?第二步,如果用的是IDE,可以用环境自带的编译功能。否则,可在windows console环境下使用,javac命令(在jdk/bin下)

?找到你的jdk/bin所在的路径,并将其加入环境变量Path中。

?在console下使用javac 路径/xxx.java命令编译java文件,成功后生成.class文件

?第三步,执行。在执行前,需要将.class文件所在路径加入到环境变更classpath

中(如没有就新加一个).

?IDE

?Jbuilder

?Visual Age for Java

?Core Java

?JCreator

?NetBeans

?Eclipse

?所有文本编辑软件+JDK

?……

第二部分Java的控制流?Java的流程控制语句

?顺序

?分支

?循环

?Java 异常处理机制

?try…catch

?throws

?throw

Java的流程控制语句

分支(条件)语句

?IF语句格式:

if(表达式)

语句组1;

else

语句组2;

?语句组:用大括号括起的语句集合

?else 项是可选的,与最靠近的if 配对

?注意:if 后面的(表达式)的值是布尔类型

条件语句的用法

?例子

int count;

count=getCount(); //获得出席人数

if (count < 0 ) {

System.out.println(“Error: count value is negative!”);

else {

System.out.println(“There will be ”+count+” people

for lunch today.”);

}

?注意:若判断表达式的两边相等用==(两个等号)

多条件语句的用法

?例子

if ( score > 90 ) {

System.out.println(“A”);

else if ( score > 80 && score <= 90 ) {

System.out.println(“B”);

else if ( score > 60 && score <= 80 ) {

System.out.println(“C”);

else if ( score < 60 ) {

System.out.println(“F”);

}

多路分支(开关)语句(Mar.19)

?SWITCH语句格式

switch(表达式)

{ case 常量值1:语句组1;

case 常量值2:语句组2;

……

default:语句组n;

}

?从上到下根据表达式值作比较,转向不同的分支

?每个case分支都只是入口点,用break 语句跳出

?default是不作比较的入口点,该部分是可选的

?注意:常量值可以是常量表达式,常量值必须互不相同,

常量类型必须是byte, char, short或int之一开关语句的一些用法

?例子

switch (letter_grade) {

case 'A': points = 100;

break;

case 'B': points = 90;

break;

case 'C': points = 80;

break;

}

开关语句的一些用法(续)

?例子

switch (letter_grade) {

case 'A':

case 'B':

case 'C': status= PASS;

break;

default: status= FAIL;

}

循环

?Java的循环语句有三种形式

?for 语句

?功能最强、使用最多、最灵活

?while 语句

?do-while 语句

Java的循环语句( for 型)

?for 语句格式:

for ( 表达式1;表达式2;表达式3)

语句组;

?表达式1:循环变量初始化(赋初值)

条件表达式)

?表达式2:循环条件(

?表达式3:修正变量(改变循环变量)

?循环变量可以是任意的数据类型

for语句的一些用法

?for语句的表达式1和表达式3可以是用逗号隔开的多个表达式

?允许在初始化部分(表达式1)对变量作说明

?例子

for ( int i = 0 , j = 8 ; i < j ; i++ , j++ )

System.out.println( “ k= “ + i * j )

for语句的一些用法(续)

?循环的初始化、条件、增量部分均可以是空语句,即可以不放置语句或者表达式而只留下分号

?例子

for ( ; found_it == false ; ) {

语句

}

?省略表达式1和表达式3

while语句的用法

?例子

int i = 0;

while ( i < 10 ) {

System.out.println(“Have you finished up it?”);

i++;

}

System.out.println(“Finally!”);

do-while语句的用法

?例子

int i = 0;

do {

System.out.println(“Have you finished up

it?”);

i++;

} while ( i < 10 )

System.out.println(“Finally!”);

改变循环的流程控制

?改变循环体执行过程

?break 语句

?从循环体内跳出至后面语句,结束当前循环。

?continue 语句

?跳过本轮循环剩余语句,直接进入当前循环下一轮

for语句中的continue跳至表达式3计算修改增量

中断跳出语句( break)

?与开关语句(switch)或

与循环语句(for、while、do-while )一起使用

?有两种使用格式

?不使用标号情况

break;

?使用标号(label)情况

break label;

不带标号的break语句

?不带标号的break语句的两个特点:

?循环嵌套时,只跳出当前循环

?一定是跳出当前循环体,不是跳出当前大括号对

?例: 1 if ( check( i ) {

2 for ( int j=0; j<10; j++ ) {

3 if ( j > i )

4 break;

5 }

6 ……

7 }

带标号的break语句

?带标号的break语句的两个特点:

?一定有一个带相同标号程序块出现

?循环嵌套时,可以跳出多重循环层

?例: 1 abc: if ( check( i ) {

2 for ( int j=0; j<10; j++ ) {

3 if ( j > i )

4 break;

5 if ( a[ i ][ j ] == null )

6 break abc;

7 }

……

n }

n+1 ….

continue 语句

?总是与循环语句(for、while、do-while )一起使用?有两种使用格式

?不使用标号情况

continue ;

?使用标号(label)情况

continue label;

不带标号的continue语句

?例: 1 int i=0;

2 while ( i<10 ) {

3 System.out.println(“Welcome!” );

4 i++;

5 if ( i == 3 ) continue;

6 System.out.println(“You are welcome!” );

7 }

?跳过i=3时的“You are welcome!”

带标号的continue语句

?例: 1 mon: for ( int m=1; m<=12; m++ ) { //外循环

2 for ( int d=1; d<=31; d++ ) { //内循环

3 if ( m==2 && d==28 )

4 continue mon;

……

n }

n+1 }

?当m=2时,内循环只做28次

程序出错概述

?程序错误

?语法错误

?逻辑错误

?异常错误

?异常通常指程序运行过程中出现的非正常情况,例如用户输入错误、除

数为零、需要处理的文件不存在、数组的下标超出数组范围等等。

?具有三种错误的程序

(errorShow1.java)

修正语法错误后

(errorShow2.java)

修正逻辑错误后的程序

(errorShow3.java)

Java异常处理机制

?Java语言的异常处理机制,在程序中监视可能发生的异常的程序代

码,并将所有异常处理代码集中放置在程序某处,使完成正常功能的程序代码与进行异常处理的程序代码分开,这里处理异常的代码称为处理机(Exception handler)。

?异常种类

?RuntimeException(ArrayIndexOutOfBoundsException以及

NumberFormatException)

?IOException.涉及处理输入和输出异常

处理异常

“捕获”异常基本结构的语法:

try{

//可能引起异常的代码段

}catch(Exception e){

//处理异常e

}

?当try代码块中出现一个异常时,这个代码块的剩余部分将终止执行,程序转入catch代码块中,执

行catch代码块的内容

?catch代码块相似于方法(过程或函数),接收某一类型的参数,这里e并不是专用的,可以使用任

何标识符。(通常异常类型已经给出了足够的异常信息,有时可以在catch代码块中不使用此标识符)。

?对于catch代码块,重要的是使用两个主要的公共方法:

getMessgae():用于获得与异常有关的任何特定信息

printStackTrace():用于输出程序运行时堆栈的轨迹(也可理解为程序运行的轨迹),它罗列了所涉及方法的方法名、异常名与原因、程序文件名与行号。

?处理异常举例1

?【例7-2】try_catch结构。

?修改代码(ch7ex22.java)

?对于由用户通过try_catch异常处理代码捕获异常的场合,程序可以继续执行其后续的代码。

如下所修改的程序:

(ch7ex23.java)

?如果,用户能预先知道可能发生的错误,如上述例子中的算术操作,则可以使用特定的异常处理。

【例7-3】ArithmeticException

?可以在catch代码块中定义自己希望输出的信息或想处理的代码。例如可以将上述程序修改如下:

(ch7ex32.java)

捕获多个异常

?捕获多种可能出现的异常try_catch结构的语法:

try{

//可能引起异常的代码段

}catch(Exception1 e1){

//处理异常e1

}catch(Exception2 e2){

//处理异常2

} catch(Exception3 e3){

//处理异常3

} catch(Exception4 e4){

//处理异常4

}

?捕获多个异常举例

?【例7-5】多个catch结构。

finally代码块

?在try_catch结构中,还可以加入final代码块,它是一个可选项。

语法结构:

try{

//可能引起异常的代码段

}catch(Exception1 e1){

//处理异常e1

}catch(Exception2 e2){

//处理异常2

} catch(Exception3 e3){

//处理异常3

} catch(Exception4 e4){

//处理异常4

}

finally{

//必须执行的代码块

}

抛出异常

?如果一个方法没有捕获可能引发的异常,调用该方法的其他方法应该捕获并处理异常。

为了明确指出一个方法不捕获某类异常,而让调用该方法的其他方法捕获该异常,可以在定义方法的时候,使用throws可选项,用以抛出该类异常。

语法格式:

MethodName(formalArgumentList)throws Exception{

//方法的代码块

}

?在此,系统将强制方法的用户(调用者)在try_catch代码块中捕获这些可能的异常。

【例7-6】设计一个堆栈类。

除此之外,用户也能自己通过throw语句抛出异常。

语法格式:

throw new Exception(message);//message是一个指出异常原因的字符串

【例7-7】设计一个简单通信录类,类中仅包含姓名、手机号码。

Java异常处理机制

?Java的流程控制语句

?顺序

?分支

?循环

?Java异常处理机制

?try…catch

?throws

?throw

小结

?Java的流程控制语句

?顺序

?分支

?循环

?Java异常处理机制

?try…catch

?throws

?throw

java实验二附答案

Java 实验二 实验二类与对象 实验目的 1、掌握面向对象程序设计的方法与Java 作为面向对象程序设计语言的特点; 2、掌握修饰符与构造方法的使用规则; 3、掌握接口的特点、结构、调用与继承; 4、掌握如何创建包, 通过包如何管理类; 5、掌握Java 的继承机制与实现多态的方法实验内容 (1)定义一个类Student,属性为学号、姓名与成绩;方法为增加记录SetRecord与得到记录GetRecord。SetRecord赋值学号、姓名与成绩,GetRecord通过学号得到考生的成绩。通过实例验 证编程无误。 ⑵定义一个接口Area,其中包含一个计算面积的抽象方法calculateArea()然后设 计Circle与Rectan两个类实现这个接口的方法calculateArea()分别计算圆与矩形的面积。通过实例验证编程无误。 (3) 假定根据学生的3门学位课程的分数决定其就是否可以拿到学位,对于本科生, 如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均分超过80分才能够通过。根据上述要求,请完成以下Java类的设计: (i)设计一个基类Student描述学生的共同特征。 (ii)设计一个描述本科生的类Undergraduate该类继承并扩展Student类。 (iii)设计一个描述研究生的类Graduate该类继承并扩展Student类。 (iv)设计一个测试类StudentDemo分别创建本科生与研究生这两个类的对象,并输 出相关信息 附实验一名称就是Java 语言基础实验报告分为以下几个部分 一实验名称二实验目的三实验仪器四实验步骤(把您的操作一步一步写清楚,java 程序代码要写) 五实验结果(程序运行后的结果就就是DOS 环境下运行出来的结果写在实验报告上) 六实验讨论(实验过程中的错误及如何改正,您的心得体会等) 答案: (1)定义一个类Student,属性为学号、姓名与成绩;方法为增加记录SetRecord与得到记录GetRecord。SetRecord 赋值学号、姓名与成绩,GetRecord 通过学号得到考生的成绩。通过实例 验证编程无误 public class Student { private int ID; private String name; private float score; public void SetRecord(int ID,String name,float score){ this、ID=ID; this、name=name; this、score=score; } public float getRecord(int ID){ if(ID==this 、ID) return this 、score; else return -1; }

实验一java基础知识

实验一:java基础知识 实验目的: 1.掌握jave中变量的类型。 2.掌握常用的运算符 3.程序流程控制:顺序,选择和分支 实验内容: 1、回文数: 编写一个Java程序。用户从键盘输入一个1-9999之间的数,程序将判断这个数是几位数,并判断这个数是否回文数。回文数是指该数含有的数字逆序排列后得到的数和原数相同。 实验类别:验证性 2、猜数字游戏 编写一个Java应用程序,实现如下功能: 程序随机分配给客户一个1-100之间的整数 用户在输入对话框中输入自己的猜测 程序返回提示信息,提示信息分别是:“猜大了”、“猜小了”、和“猜对了”用户可以根据提示信息再次输入猜测,直到提示信息是“猜对了” 实验类别:设计性 3、输出希腊字母表 为了输出希腊字母表,首先获取希腊字母表的第一个字母和最后一个字母在unicode表中的位置,然后使用循环输出剩余的希腊字母 要观察一个字符在uniclde表中的顺序位置 实验类别:设计性

实验二类和对象 实验目的: 1.理解类的基本概念。 2.掌握如何定义类,定义类的成员变量和成员方法.创建和使用对象。 3.掌握定义重载方法和构造方法,方法参数的传递。 4. static变量和方法的使用。 实验内容: 1、定义一个名为Rectangle的类表示矩形,其中含有length,width两个double型 的成员变量表示矩形的长和宽。要求为每个变量定义访问方法和修改方法,定义求矩形周长的方法peremeter和求面积的方法area。定义一个带参数构造方法,通过给出的长和宽创建矩形对象。定义默认构造方法,在该方法中调用有参构造方法,将矩形长宽设置为1.0。 实验类别:验证性 2、方法重载: 编写一个Java程序,反映方法重载的使用特点,该程序包含多个重载的加法的运算,如整型加法,实型加法。 实验类别:验证性 3、学生类的创建: 1)创建一个student类,包括的域有学号、班号、姓名、性别、年龄等 2)声明一个构造方法,以初始化对象的所有域 3)声明分别获得各属性(学号、班号、姓名、性别、年龄)的各个public方法。4)声明修改各属性(学号、班号、姓名、性别、年龄)的各个public方法。5)创建一个具体学生对象,进行输出。 实验类别:设计性 4、定义一个类,类中有两个整型变量x和y,并定义构造函数初始化这两个变量。(通过构造函数传数据,数据值自定) 类中还可定义以下方法: 求两个数的和(x+y)并返回结果,求两个数的差(x-y)并返回结果,求两个数商(x/y)并返回结果,求两个数的余数(x%y)并返回结果,求两个数的最大值并返回结果。 编写应用程序,测试上面定义的类,使用类中定义的各个方法并将其结果输出。实验类别:验证性 5、用set()、get()方法传递数据: 本工程共有三个类,Person类、Employee类、和Test类,其中Test类 为测试类,其中有main()方法。 调用的是默认的构造方法,参数为空。 实验类别:设计性

mooc零基础学习java语言习题答案

第一周 温度转换(5分) 题目内容: 写一个将华氏温度转换成摄氏温度的程序,转换的公式是:°F = (9/5)*°C + 32 其中C表示摄氏温度,F表示华氏温度。程序的输入是一个整数,表示华氏温度。输出对应的摄氏温度,也是一个整数。提示,为了把计算结果的浮点数转换成整数,需要使用下面的表达式: (int)x; 其中x是要转换的那个浮点数。 注意:除了题目要求的输出,不能输出任何其他内容,比如输入时的提示,输出时的说明等等都不能。这道题目要求转换后的数字,程序就只能输出这个数字,除此之外任何内容都不能输出。 输入格式: 一个整数。 输出格式: 一个整数。 输入样例: 100 输出样例: 37 程序代码 import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub int F; int C; Scanner in=new Scanner(System.in); F =in.nextInt(); C =(F-32)*5/9; System.out.println(C); in.close(); }

} 第二周 1时间换算(5分) 题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。 有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据。 你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。 提醒:要小心跨日的换算。 输入格式: 一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而且分小于10分,需要保留十位上的0。输出格式: 一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而且分小于10分,需要保留十位上的0。输入样例: 933 输出样例: 133 程序代码 import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub int UTC; int BJT;

实验二 Java语言基础

实验二Java语言基础 实验目的 1、了解Java 的数据类型; 2、掌握各种变量的声明方式; 3、理解运算符的优先级; 4、掌握Java 基本数据类型、运算符与表达式、数组的使用方法; 5、理解Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方 法; 6、通过以上内容,掌握Java 语言的编程规则。 实验要求 1、编写一个声明Java 不同数据类型变量的程序; 2、编写一个使用运算符、表达式、变量的程序; 3、编写一个使用Java 数组的的程序; 4、编写表达式语句、复合语句的程序; 5、编写使用不同选择结构的程序; 6、编写使用不同循环结构结构的程序。 实验内容 1、声明不同数据类型的变量 (1)编写声明不同数据类型变量的程序文件LX2_1.java,源代码如下。 public class EXP2_1 { public static void main(String args[]) { byte b=0x55; short s=0x55ff; int i=1000000;

long l=0xffffL; char c='a'; float f=0.23F; double d=0.7E-3; boolean B=true; String S="这是字符串类数据类型"; System.out.println("字节型变量 b = "+b); System.out.println("短整型变量 s = "+s); System.out.println(" 整型变量 i = "+i); System.out.println("长整型变量 l = "+l); System.out.println("字符型变量 c = "+c); System.out.println("浮点型变量 f = "+f); System.out.println("双精度变量 d = "+d); System.out.println("布尔型变量 B = "+B); System.out.println("字符串类对象 S = "+S); } } (2)编译并运行该程序,结果如图2.1 所示。 图 2.1

JAVA教程 第二讲 JAVA语言基础知识 (2)

JAV A教程第二讲Java语言基础知识 2.1简单数据类型 2.1.1标识符和保留字 1.标识符 程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(identifier)。J ava语言中,标识符是以字母,下划线(_),美元符($)开始的一个字符序列,后面可以跟字母,下划线,美元符,数字。例如,identifier,userName,User_Name,_sys_val,$c hange为合法的标识符,而2mail room#,class为非法的标识符。 2.保留字 具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字(reserv ed word),也称为关键字,下面列出了java语言中的所有保留字: bstract,break,byte,boolean,catch,case,class,char,continue,default,dou ble,do,else,extends,false,final,float,for,finally,if,import,implemen ts,int,interface,instanceof,long,length,native,new,null,package,priva te,protected,public,return,switch,synchronized,short,static,super,try,true,this,throw,throws,threadsafe,transient,void,while。 java语言中的保留字均用小写字母表示。 2.1.2数据类型概 1.java中的数据类型划分 java语言的数据类型有简单类型和复合类型: 简单数据类型包括: 整数类型(Integer):byte,short,int,long 浮点类型(Floating):float,double 字符类型(Textual):char 布尔类型(Logical):boolean 复合数据类型包括: class interface 数组 2.常量和变量 常量:用保留字final来实现 final typeSpecifier varName=value[,varName[=value]…]; 如:final int NUM=100;

零基础自学java,先看书胜过先看视频

零基础自学java,先看书胜过先看视频 近年来,Java视频逐渐取代了“书”的作用,许多初学者已经将看视频作为最主要的学习方式。然而,通过长期对java自学者的观察研究,我们发现,书和视频均有各自的作用,看书和看视频对于java学习者来说,都是不可或缺的。然而,由于现在Java 入门级视频讲的实在是浅显易懂,导致许多零基础的学生完全忽视了书的作用,这是非常不利于以后的深入学习的。 首先,看java视频是能够更快速的学习java 这一点是毋庸置疑的,为什么现在视频教程会那么的流行,因为视频教程讲的非常的生动浅显,最关键是视频教程会由老师亲自上级演示操作,这就像是上课一样,而且可以反复看,对于初学者来说,非常有用。 其次,书籍的作用在于引导和思考 对于零基础的初学者而言,视频就像是老师讲课,然而,我们从小到大的学习,都离不开图书,书籍是知识的载体,一本图书凝聚作者毕生的知识积累。对于自学者而言,一开始就看视频,会觉得视频讲的确实容易,因此容易丧失主动思考的能力。只有,你自己拿起一本java经典图书,一字一行的理解其中的技术精髓,你才能不断的思考,而这本书则是你的引导。 看书+视频+看书的学习形式最为合适 对于零基础自学者来说,视频就是你的老师,图书就是你的课本。那么,在上课之前一定要先预习,上课之后要复习并完成作业,这是一个我们习以为常的学习流程,也是非常有效的学习过程。所以,你可以先看一章或多章图书,这时候,你可能只理解了一部分,接下来,你再看视频,你会发现视频中讲了不少东西,你又会明白一部分,看

过视频后,反过来,再复习之前看过的图书,这样,你就把整个知识和原理进行了一次思考,你将最大限度的理解其中的原理,而之后,多上机练习,由此反复,循序渐进,你将会学的扎扎实实,几个月坚持下来,你必定会成为一个优秀的初级程序员,而这离一个优秀的中高级程序员之间的距离仅仅是时间问题。而一开始,你就填鸭式的被动接受,不多加思考,那么几个月下来,你只是一个马马虎虎的初级程序员,而你离一个马马虎虎的中高级程序员的距离也只是时间问题而已。 位于沈阳和平区三好街的北大青鸟,推崇技能+学历+经验的教学模式。无论是学资学历、师资力量还是专业技术在同类机构中都占据不少优势,更重要的是北大青鸟入学就签订就业协议,很大程度上解决了学员的就业难题。 北大青鸟教材在编制测试后,会进入到正式的授课中,为了能够保证北大青鸟学员所学知识的权威性和实用性,北大青鸟每18个月便会邀请行业专家和著名企业权威人士,加上北大计算机相关学院的资深教授,进行教材的升级和更新。 如果您对IT感兴趣并且励志要成为IT精英,千万不要错过北大青鸟。 详情请咨询【点击查看】

java语言程序设计基础篇第十版课后答案第二章答案

package cn.Testcx; import java.util.Scanner; public class lesson2 { public static void main(String[] args){ @SuppressWarnings("resource") Scanner input =new Scanner(System.in); System.out.print("请输入一个摄氏温度:"); double Celsius =input.nextDouble(); double Fahrenheit =(9.0/5)*Celsius+32; System.out.println("摄氏温度:"+Celsius+"度"+"转换成华氏温度为:"+Fahrenheit+"度"); System.out.print("请输入圆柱的半径和高:"); double radius =input.nextDouble(); int higth = input.nextInt(); double areas =radius*radius*Math.PI; double volume =areas*higth; System.out.println("圆柱体的面积为:"+areas); System.out.println("圆柱体的体积为:"+volume); System.out.print("输入英尺数:"); double feet =input.nextDouble(); double meters =feet*0.305; System.out.println(feet+"英尺转换成米:"+meters); System.out.print("输入一个磅数:"); double pounds =input.nextDouble(); double kilograms =pounds*0.454; System.out.println(pounds+"磅转换成千克为:"+kilograms); System.out.println("输入分钟数:"); long minutes =input.nextInt(); long years =minutes/(24*60*365); long days = (minutes%(24*60*365))/(24*60); System.out.println(minutes+"分钟"+"有"+years+"年和"+days+"天"); long totalCurrentTimeMillis =System.currentTimeMillis(); long totalSeconds =totalCurrentTimeMillis/1000; long currentSeconds =totalSeconds%60; long totalMinutes =totalSeconds/60; long currentMinutes =(totalSeconds%(60*60))/60; long currenthours =(totalMinutes/60)%24; System.out.print("输入时区偏移量:"); byte zoneOffset = input.nextByte(); long currentHour =(currenthours+(zoneOffset*1))%24; System.out.println("当期时区的时间为:"+currentHour+"时"+currentMinutes+"分"+currentSeconds+"秒");

实验 2 Java语言的基本语句练习

实验 2 Java语言的基本语句练习 一、实验目的 1.了解 Java的数据类型 2.掌握各种变量的声明方式。 3.理解运算符的优先级。 4.掌握 Java基本数据类型、运算符与表达式、数组的使用方法。 5.理解 Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。6.通过以上内容,掌握 Java语言的编程规则。 二、实验要求 1. 编写一个声明 Java不同数据类型变量的程序。 2. 编写一个使用运算符、表达式、变量的程序。 3. 编写一个使用 Java数组的的程序。 4. 编写表达式语句、复合语句的程序。 5. 编写使用不同选择结构的程序。 6. 编写使用不同循环结构结构的程序。 三、实验内容 (一)声明不同数据类型的变量 1.编写声明不同数据类型变量的程序文件LX2_1.java,源代码如下。 public class LX2_1 { public static void main(String args[]) { byte b=0x55; short s=0x55ff; int i=1000000; long l=0xffffL; char c='a'; float f=0.23F; double d=0.7E-3; boolean B=true; String S="这是字符串类数据类型"; System.out.println("字节型变量 b = "+b); System.out.println("短整型变量 s = "+s); System.out.println(" 整型变量 i = "+i); System.out.println("长整型变量 l = "+l); System.out.println("字符型变量 c = "+c); System.out.println("浮点型变量 f = "+f); System.out.println("双精度变量 d = "+d); System.out.println("布尔型变量 B = "+B); System.out.println("字符串类对象 S = "+S); } }

实验 2 Java 基本语法练习

实验 2 Java 基本语法练习 一、实验目的 1.了解Java 的数据类型 2.掌握各种变量的声明方式。 3.理解运算符的优先级。 4.掌握Java 基本数据类型、运算符与表达式。 5.理解Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。 6.通过以上内容,掌握Java 语言的编程规则。 二、实验要求 1. 编写一个声明Java 不同数据类型变量的程序。 2. 编写一个使用运算符、表达式、变量的程序。 3. 编写一个使用Java 数组的的程序。 4. 编写表达式语句、复合语句的程序。 5. 编写使用不同选择结构的程序。 6. 编写使用不同循环结构结构的程序。 三、实验内容 (一)声明不同数据类型的变量 1.编写声明不同数据类型变量的程序文件KY2_1.java,源代码如下。

2.编译并运行该程序 (二)了解变量的使用范围 1.建立KY2_2.java 文件,通过本程序了解变量的使用范围,源代码如下。

2.编译KY2_2.java 此时会出现错误提示。因为变量k 在方法块中声明,在方法块之外它是不存在的,所以编译时会出错。 3.修改上面的程序。 4.成功运行该程序。 思考:KY2_2.java 程序说明了什么问题? (三)使用关系运算符和逻辑运算符 1.建立使用关系运算符和逻辑运算符的程序文件,源代码如下。 2.编译并运行该程序。 (四)使用表达式语句与复合语句 1.建立包含表达式语句程序,源代码如下。 2.建立包含复合语句程序,源代码如下。

3.编译并运行上述两个源程序 4.将变量i 在块内定义会怎样?改变其他变量的位置看看会发生什么变化。 思考:指出程序的复合结构以及变量的使用范围。 (五)使用选择语句 1.使用if...else 语句 ?程序功能:使用if...else 语句构造多分支,判断某一年是否为闰年。闰年的条件是符合下面二者之一:能被4 整除,但不能被100 整除;能被4 整除,又能被100 整除。 ?编写源程序文件,代码如下。

java语言程序设计基础篇第二章程序练习题答案

java语言程序设计基础篇第二章程序练习题答案

2.1(将摄氏温度转化为华氏温度) import java.util.*; public class test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.print("Enter a degree in celsius: "); double Celsius = input.nextDouble(); double Fahrenheit; Fahrenheit = (9.0/5) * Celsius + 32; System.out.println(Celsius + " Celsius is" + Fahrenheit + " Fahrenheit"); } } 2.2(计算圆柱体的体积) import java.util.*; public class test {

public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.print("Enter the radius and length of a cylinder: "); double radius = input.nextDouble(); double length =input.nextDouble(); double area = radius * radius * Math.PI; double volume = area * length; System.out.println("The area is " + area); System.out.println("The volume is " + volume); } } 2.3(将英尺转换为米) import java.util.Scanner; public class test { public static void main(String[] args) {

实验二JAVA基本语法

实验二Java基本语法、数据输入和输出、流程控制 实验目的: 一.熟练掌握https://www.doczj.com/doc/252500909.html,ng.System类提供了3种标准输入和输出流 二.熟练掌握JDK1.5增加的java.util.Scanner和java.util.Printf() 三.熟练掌握图形界面的标准对话框: 四.熟练掌握程序运行时间的计算 五.熟悉Java基本语法、基本数据类型、运算符、流程控制语句的使用;能够阅读简单的Java程序,初步了解Java类、方法的定义和调用;能用Java语言解决一定的现实问题,完成其它计算机语言到Java语言的转变和知识迁移。 六.数组 知识准备 一.https://www.doczj.com/doc/252500909.html,ng.System类提供了3种标准输入和输出流: 1.标准输入流(System.in)用于读取用户从标准输入设备或用户定义的输入设备数据的输入。 InputStreamReader iin=new InputStreamReader(System.in); BufferedReader bin=new BufferedReader(iin); System.out.print("请输入一个字符串:"); String s=bin.readLine(); 2.标准输出流(System.out):用于在标准输出设备或用户指定的输出设置上输出数据。System.out.print(表达式1+表达式2+……); System.out.println(表达式1+表达式2+……); 3.标准出错流(System.err)用于显示出错信息 System.err.print(表达式1+表达式2+……); System.err.println(表达式1+表达式2+……); 二.JDK1.5增加的java.util.Scanner和java.util.Printf() 1.从键盘上输入数据: Scanner reader=new Scanner(System.in); Int i=reader.nextInt(); 用reader对象可以调用nextByte()nextShort(),nextInt(),nextLong(),nextDouble(), nextFloat(),nextLine();来读取用户在命令行输入的各种数据类型。 2.Printf(格式控制部分,表达式1,表达式2,…); printf()和format()方法具有相同的功能.System.out是java.io.PrintStream的实例. PrintStream,java.io.PrintWriter,和https://www.doczj.com/doc/252500909.html,ng.String每个类都有四个新的格式化方法: format(String format,Object...args); printf(String format,Object...args); format(Locale locale,String format,Object...args); printf(Locale locale,String format,Object...args); 行宽控制:%[argument_index$][flags][width][.precision]conversion 其中: argument_index是一个正整数,说明了参数的位置,1为取第一个参数 width表示输出的最小字母个数

零基础java自学教程

零基础java自学教程 java的火爆袭来,吸引了大批的初学者涉猎,想入行java,却苦于自己没有基础,担心学不好。小编告诉你,这些担心都是浮云,你只是惧怕走进一个新天地,人都是一样的,面对自己不熟悉的领域总会有莫名的恐惧感。其实来千锋学习java的大部分都是零基础,照样高薪就业。不是不可以,只是你缺乏的是勇敢迈出去的勇气。 千锋小编整理了一份关于java自学的学习路线图,希望帮助每一位想学习java的小伙伴快速成长为java开发工程师。 Java学习分为四个阶段的学习,如零开始,逐渐深入,书籍和教学视频相结合,大步走向java开发工程师。 完整的java学习路线图: 第一阶段java基础,通过对基础阶段的学习,可以让学员清晰JavaEE开发工程师的定位及发展规划,同时鼓舞学员做好迎战的心理准备。 第二阶段javaWeb,是进阶阶段,掌握Java的基本语法,数据类型及各种运算符,开始可以写一些运算相关的程序。

第三阶段java框架,框架是程序中另一种存储数据的方式,比直接使用数组来存储更加的灵活,在项目中应用十分广泛。同时,我们将深入研究其中涉及到的数据结构和算法,对学员的技术深度有了一个质的提升。 第四阶段java+云数据,亿级并发架构演进、Linux基础、搭建tomcat环境以及大数据开发云计算等高级Java教程,是Java技术的高端知识。其中穿插项目实战演练,企业真实项目供学员应用学习,进行知识体系的“二次学习”。 Java自学书籍: 《Head First Java, 2nd Edition(中文版)》这本书不仅内容丰富、有趣且通俗易懂,并且涵盖了所有Java 相关的基础知识。如果你是Java 初学者,这本书正适合你。 《Java 核心技术(卷1、2)》写作风格相比Head First 趣味性来说更显传统,所涵盖的内容包括Java 基础知识及高级应用,是对于入门来说的另一种选择。 《Java 编程思想(第4版)》必读之作,不仅涵盖所有Java 基础,对于编程思想层面的提升也有很好的帮助。 《Head First 设计模式》延续Head First 一贯生动趣味的写作风格,介绍

实验2 Java编程基础

实验2 Java编程基础 一、实验目的 1.熟悉基本数据类型,包括其所占字节数、数值范围及常数的后缀形式; 2.掌握变量的声明、初始化方法,能够正确区分全局变量(即成员变量)和局部变量(即本地变量);3.掌握关系运算符()、>=、<、<=、==、!=)和逻辑运算符(!、&&、||)的使用; 4.熟悉Java程序的常用输入输出格式。 二、实验内容与步骤 说明:①实验报告必须完成的是基础题,提交课外完成题及提高题的可以加分; ②本实验的操作环境是:文本编辑器(如写字板等)、javac和java命令; ③可先建立F:\myjava目录,再在其中建立java源程序,并编译、运行。 1.(基础题)应用程序若要输出如图2-1所示结果,请将程序所缺代码填充完整,并加以运行,然后完成实验报告相关内容: 图2-1程序运行结果 程序代码: ________________ Diamond { _____________________ main(__________ args[]) { System.out.println(" *"); System.out.println(" * *"); System.out.println(" * *"); System.out.println("* *"); ____________________________; ____________________________;

____________________________; } } 2.(基础题)请按下列要求,将程序代码填充完整,并加以运行: public class Test { // 初始值为0的整型变量 b1 // 初始值为10000的长整型变量b2 // 初始值为3.4的浮点型变量b3 // 初始值为34.45的双精度型变量b4 // 初始值为’4’的字符型变量b5 // 初始值为true的布尔型变量b6 public static void main(String ________) { // 输出变量b1——b6的值 } } 3.(基础题)输入下列程序内容,运行程序,并回答相关问题: public class DataType { public static void main(String args[]) { byte a1 = 126, a2 = (byte) 256, a3 = 'A'; System.out.println("a1=" + a1 + "\ta2=" + a2 + "\ta3=" + a3); int b1 = 12345, b2 = (int) 123456789000L, b3 = '0', b4 = 0xff; System.out.println("b1=" + b1 + "\tb2=" + b2 + "\tb3=" + b3 + "\tb4="+ b4); char c1 = 'a', c2 = 98, c3 = '\u0043', c4 = '\n'; System.out.println("c1=" + c1 + "\tc2=" + c2 + c4 + "c3=" + c3); } } 问题: (1)变量a2、a3的输出内容是什么?为何出现这种变化? (2)变量b2、b3的输出内容是什么?为何出现这种变化? (3) '\t'、'\n'各有什么特殊用途? (4)System.out的println()方法与print()方法有什么不同? (5)如何声明、初始化一个变量? (6)b4初始化时,被赋予什么进制的数? (7)写出声明ch为字符型变量、并初始化为'c'的三种不同写法。 4. (基础题)写出下列程序的运行结果,并解释其原因: public class Pass { static int j = 20; public static void main(String args[]) {

零基础学java从哪儿开始

零基础学java从哪儿开始 面对未知的行业,人们的第一反应应该是:拒绝踏入。因为学习真的是一个痛苦的过程。想要真正了解一个行业,熟知一个行业,并熟练掌握某一技术,是真的需要时间和精力的。面对勇敢自学的java小伙伴们,千锋小编疯狂为你们打CALL,并为你准备了一些java重要的技术点,是需要重点学习的技术哦! 1、多线程并发 多线程是Java中普遍认为比较难的一块。多线程用好了可以有效提高cpu 使用率,提升整体系统效率,特别是在有大量IO操作阻塞的情况下;但是它也是一柄双刃剑,如果用不好,系统非但提升不大,或者没有提升,而且还会带来多线程之间的调试时等问题。 在多线程中内容有很多,只是简单说明一下Java中初步使用多线程需要掌握的知识点,以后有机会单独再详细介绍一些高级特性的使用场景。 多线程的实现和启动 callable与runable区别 syncrhoized,reentrantLock各自特点和比对

线程池 future异步方式获取执行结果 concurrent包 lock 2、网络 Java中也是提供了可以直接操作TCP协议、UDP协议的API。在需要强调网络性能的情况下,可以直接使用TCP/UDP进行通讯。在查看Tomcat等的源码中,就可以看到这些相关API的使用情况。不过一般也比较少会直接使用TCP,会使用诸如MINA、Netty这样的框架来进行处理,因为这个方面的开发涉及不多,所以就不再详细罗列了。 3、时间日期处理 几乎对于每个应用来说,时间日期的处理也是绕不过去的,但是JDK8之前的时间相关API用法并不友好。在那个时代,可以选择Joda等时间框架。到了JDK8发布之后,全新的时间API基本融合了其他框架的优点,已经可以很好的直接使用了。 对于Java开发者来说,需要熟练地使用API来对时间和日期做相关的处理。 4、XML解析/JSON解析 其实这两块内容都不是J2SE里面的内容,但是在日常开发中,和其他程序交互,和配置文件交互,越来越离不开这两种格式的解析。 不过对于一个开发者来说,能够了解一些XML/JSON具体解析的原理和方法,有助于你在各个具体的场景中更好的选择合适你的方式来使得你的程序更有效率和更加健壮。

java服务器端编程基础入门

import java.awt.*; import java.awt.event.*; import https://www.doczj.com/doc/252500909.html,.*; import java.io.*; public class ChatServer { public static void main(String[] args) { boolean started = false; // 判断服务器是否启动了,先假定没有启动 ServerSocket ss = null; DataInputStream dis = null; try { ss = new ServerSocket(8888); started = true; // 服务器已经启动了,设置started为true while (started) { //当服务器端启动时。。。。 boolean bConnect = false; //判断服务器和客户端的连接是否已经建立,没有为false,连接成功返回true Socket s = ss.accept(); //accept()与readUTF()方法一样,都是一个阻塞式方法,如果没有收到连接请求,则一直等待。。。。。 bConnect = true; //连接成功,设置bConnect为true System.out.println("一个连接已经建立!"); // -------------------------- dis = new DataInputStream(s.getInputStream()); while (bConnect) {

String str = null; str = dis.readUTF(); //如果客户端突然断开连接,该语句就会抛出异常EOFException,所以我们必须得对dis.readUTF();进行异常处理 //readUTF()是阻塞式方法,如果得不到数据,则继续等待,直到读取到数据为止 System.out.println("从客户端接受的数据是:" + str); } } } catch (BindException e) { System.out.println("端口已被占用,其使用其他端口"); System.out.println("请关闭相关程序,重新运行!"); System.exit(-1); } catch (EOFException e) { System.out.println("客户端已经断开连接!"); } catch (IOException e) { //e.printStackTrace(); System.out.println("服务器端读写错误!"); } finally { try {

第2章Java 语言基础范文

第2章 Java 语言基础 1.标示符和关键字在定义和使用方面有何区别? 【答】定义方面:标示符是用户定义的、以字母开头的字母数字序列,关键字是由Java语言定义的、具有特定含义的英文单词。 使用方面:标示符用于命名变量、常量、类、对象等元素,每一个关键字都有特定的含义,不能被赋予别的含义。 2.Java语言的基本数据类型有哪些?引用数据类型有哪些? 【答】基本数据类型有:整数类型byte、short、int、long,浮点数类型float、double,字符类型char,布尔类型boolean;引用数据类型包括数组(array)、类(class)和接口(interface) 3.试分析基本数据类型与引用数据类型的主要特点,并说明使用这两种变量有哪些差别?【答】基本数据类型的变量保存数据值,而引用数据类型的变量保存地址。 4.算术运算、关系运算、逻辑运算和位运算各有哪些运算符? 【答】算术运算:单目运算符有+(正)、—(负)、++(自增)、——(自减),双目运算符有+(加)、—(减)、*(乘)、/(除)、%(取余) 关系运算:=(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)都是双目运算 逻辑运算:&(与)、|(或)、!(非)、^(异或)、&&(条件与)、||(条件或),其中!是单目运算,其它都是双目运算 位运算:~(非)、&(与)、|(或)、^(异或)、<<(左移位)、>>(右移位)、>>>(无符号移位) 5.程序中为什么需要常量和变量?声明常量或变量时,为什么必须给出其所属的数据类型?【答】在程序中使用的数据大多需要经常变化,用常量值表示显然不够,因此每一种算法语言都提供常量和变量来存储数据。 为了确定常量或变量的数据性质、取值范围、以及它们占用的内存单元的字节数和它们参加的合法运算和操作。 6.什么是变量的作用域,声明变量时,如何确定变量的作用域? 【答】变量的作用域是指其作用范围。变量声明的位置决定了它的作用域 7.设i是一个整数类型变量,写出下列问题对应的表达式? (1)判断i为奇数或偶数; 【答】i%2==0 //取值为true时是偶数,否则是奇数 (2)判断i的值是否在0~9之间; 【答】(i>0)&&(i<9) 8.设ch是一个字符变量,写出下列问题对应的表达式 (1)判断ch是一个十进制的数字字符

相关主题
相关文档 最新文档