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

第二讲 Java基础

第二讲 Java基础
第二讲 Java基础

第二章Java基础知识 (2)

加1为啥变少 (2)

数据类型转换 (2)

位运算 (3)

调试之美 (4)

高手点拔-万年历的编写 (6)

任务: (7)

需求分析 (8)

阶段1判断是否是闰年 (8)

阶段2编程计算输入月份的天数 (9)

阶段3 编程计算输入的月份距离1900年1月1日的天数 (11)

阶段4 编程计算输入月份的第一天是星期几 (13)

阶段5 格式化输出××年××月日历 (14)

完整源程序 (14)

第二章Java基础知识

这一章将演示Java的基本语法,如果您已经有其他语言的编程经验,这一章可能很简单。学习一门新的编程语言首先要掌握这门语言的基础知识。如数据类型、if/else、switch分支语句和while 、for循环语句和输出等等。学习程序的目的就是为了解决实际的问题,对实际的问题进行分析,从抽象的描述转换为具体的计算机语言。编程的感觉总是在实践中一步一步得到提高。

加1为啥变少

我们知道在Java语言中,数据类型分为基本数据类型和引用数据类型。基本数据为字节byte、短整型short、整型int和长整型long。布尔型boolean,字符型char。

但是下面这个程序会是什么问题呢?

示例:

程序输出:

代码详解:

上面的例子中,我们还定义了一个字节类型的数据。当加一时,为什么变为了负数?这是因为在Java语言中,byte是8位的,最多只能是127,当再加一时,数据溢出,就变为-128啦。

数据类型转换

有时我们需要将一种数据类型转换为另一种数据类型。从小的可以自动转变为大的数据类型。但是从大的数据类型到小的数据类型要强制转换。

示例:

程序输出:

代码详解:

在上面注释的一行中,s=s+1为什么出错啦,这是因为后面的1是当作int类型处理的,而int 类型是128位的。解决方式第一种是写成b+=1,另一种就是强制类型转换,写成下一行。另外,字符类型的也可以和数据类型转换,字符类型对应于相应的ASCII码。

位运算

在计算机语言中,位运算是将数据转换成二进制度形式,一位一位进行比较,得到最后的结果。位运算有两种方式与和或。当两个都为1时,与才为1,其他结果都为0。当两个都为0时,或结果为0,其他结果为1。

示例:

程序输出:

代码详解:

在上面的程序中,当进行与运算时,3的二进制为011,4转换为二进制为100当一位一位的与时,最后结果为0,当进行或运算时,最后的二进制结果为111,也就是十进制的7。

调试之美

每一个程序员要掌握的最基本的一个功能就是程序的调试。有些逻辑错误可能我们无法一眼看出问题出在哪个地方,那么通过对程序进行调试,我们一步一步地执行程序的运行,观察每个变量的值的变化和执行的步骤,可能就能发现问题所在。

下面我们以以下的程序来演示程序的调试。

亲爱的同学们,当你运行这个程序时,“我能出现几次”会不会出现3次呢?如果不是,哪里有问题?通过程序调试一目了然。

程序的调试主要包括:

1.设置断点通常在怀疑出错的位置前后进行,双击这一行的最左边就可以啦

看到左边的圆点没,那个就是断点的位置,当程序在调试时,停在那个位置,供程序员观察变量的值或程序的运行情况。

2.单步执行点击窗口上的按钮,开始执行程序的调试。这时会出现一个如图所

示的对话框

这段话的意思是是否打开调试窗口,当然选择Yes啦。这时会切换到调试窗口。

口。在工具栏上面有调试工具,F5为跳时程序方法中执行,F6为跳出。

3.观察变量和程序的运行通过反复点击F6单步运行程序,观察程序运行过程,并注意

窗口2变量的变化情况。

4.修正代码,重新运行,当变量为3时,退出了程序的执行。

5.改正错误如果想输出3次的话,是不是应将int i=1修改为int i=0呀。

程序的主要作用就是找出缺陷原因,修正缺陷,你一定要好好练练呀。

高手点拔-万年历的编写

上面的程序是热身之作,下面我们来点复杂的。下面例子训练的技能点是通过分支结构和循环结构的组合来实现万年历的显示。也许你见过类似于图2-7 windows中的时间日期画面,那么我们能不能自己写一个这样的程序呢。我们通过类似这样的例子一步一步的讲解,

相信你的编程能力会得到逐步的提高。

图2-7 windows中的时间和日期窗口

任务:

要求从控制台输入年份和月份,在控制台上输出该月日历(已知1900年1月1日是星期一)。如图2-8所示,例如当输入年份2007和月份5后,控制台上输出2007年5月的月历信息。

图2-8 万年历的输出

需求分析

请你深吸几口气,看看有没有思路。第一个我们首先想到的是这个月有多少天,但是有可能是2月,在这之前是不是还要看这一年是不是闰年?得到这一月有多少天后,是不是得排这个月的1号在哪个位置,也就是星期几?我们仅有的信息是1900年1月1号是星期一,是不是得看这个月的第一天和1900年1月1号相隔几天,如果是一天的话,那么是不是这个月的1号是星期二?依此类推。最后这月的1号在输出时,左边要留几个空格是不是也是我们要考虑的问题?格式化换行输出是大功告的最后一步。那么我们要做的步骤是:

1.实现从控制台接收年和月,判断是否是闰年

2.编程计算输入月份的天

3.编程计算输入的月份距离1900年1月1日的天数

4.编程计算输入月份的第一天是星期几

5.格式化输出××年××月日历

好啦,思路清晰后,下面每个阶段将完成不同的任务,最后我们自己的月历将会出现在控制台上。加油!

阶段1判断是否是闰年

这一阶段所做的工作为实现从控制台接收年和月,判断是否是闰年,从数学的角度来讲,判断是否是闰年的条件为:能被4整除但不能被100整除;或者能被400整除,程序是怎么实现的呢?

其中关键的语句为:

if (year % 4 == 0 && !(year % 100 == 0) || year % 400 == 0)

完整的源程序如下:

阶段2编程计算输入月份的天数

在一年中,1月、3月、5月、7月、8月、10月、12月为31天,4月、6月、9月、11月为30天,2月如果是闰月则为29天,平年为28天。类似这样的用什么实现好呢。switch 语句?对!直接上源程序。

阶段1所定义的isRn是不是在判断是否是闰年时起到了作用?

阶段3 编程计算输入的月份距离1900年1月1日的天数

在这个阶段,我们要分步来解决问题。

第一步,计算输入的年份之前的天数。

注意年份中有的是闰年则为366天,不是闰年,则为365天。

第二步,计算计算输入月份之前的天数,两者累加则为输入的月份距离1900年1月1

日的天数。

阶段4 编程计算输入月份的第一天是星期几

要判断输入月份的第一天是星期几,得从1900年1月1日起推算,看相差的天数,如果是差一天,则为星期二,如果相差10天呢,100天呢?用除7求余法是不是更好些?关键代码为:

int temp = 1 + totalDays % 7; // 从1900年1月1日推算

阶段5 格式化输出××年××月日历

这一阶段也要分成两部分完成。第一部分,星期的标题头要打印输出。另外就是要输出

第二部分,循环打印输出这个月的每一天,如果是周六,则要换行输出。关键代码为:

完整源程序

怎么样,我们自己能不能写出一个完整的日历出来?复杂的问题,要学会分析里面的要求,逐步细化,对每个小问题进行分析、解决。那么整个的问题也就迎刃而解啦。完整的源程序如下:

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,明确需求。我要做什么? 2,分析思路。我要怎么做?1,2,3。 3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。 4,代码实现。用具体的java语言代码把思路体现出来。 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用。demo 4,该技术什么时候用?test。 ----------------------------------------------------------------------------------------------- 一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器; 1994年将Oak语言更名为Java; Java的三种技术架构: JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发; JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它

两者的基础; JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序; 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。 2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。 3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 环境变量的配置: 1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk path=%JAVA_HOME%\bin 2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。 classpath的配置: 1):永久配置方式:classpath=.;c:\;e:\ 2):临时配置方式:set classpath=.;c:\;e:\ 注意:在定义classpath环境变量时,需要注意的情况 如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运

实验一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()方法。 调用的是默认的构造方法,参数为空。 实验类别:设计性

史上最全Java基础知识点归纳

史上最全Java基础知识点归纳 写这篇文章的目的是想总结一下自己这么多年来使用Java的一些心得体会,主要是和一些Java基础知识点相关的,所以也希望能分享给刚刚入门的Java 程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE 相关的、和Java中各个框架相关的内容。 经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容。 1.JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资

深开发者来说,不会JVM几乎是不可接受的。 JVM作为Java运行的基础,很难相信对于JVM一点都不了解的人可以把Java语言吃得很透。我在面试有超过3年Java经验的开发者的时候,JVM几乎就是一个必问的问题了。当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证Java开发能力的高低。 在JVM这个大类中,我认为需要掌握的知识有: JVM内存模型和结构 GC原理,性能调优 调优:Thread Dump,分析内存结构 class二进制字节码结构,class loader体系,class加载过程,实例创建过程 方法执行过程 Java各个大版本更新提供的新特性(需要简单了解) 2.Java的运行(基础必备) 这条可能出看很简单,Java程序的运行谁不会呢?不过很多时候,我们只是单纯通过IDE去执行Java程序,底层IDE又是如何执行Java程序呢?很多人并不了解。

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精英,千万不要错过北大青鸟。 详情请咨询【点击查看】

实验 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 思路 1写代码 1)明确需求,我要做什么? 2)分析思路。要怎么做?1 2 3。 3)确定步骤。每一个思路部分用到哪些语句,方法,和对象。 4)代码实现。用具体的java语言代码把思路体现出来 2学习新技术的四点 1)该技术是什么? 2)该技术有什么特点(使用注意) 3)该技术怎么使用。Demo 4)该技术什么时候使用?test。 一Java 概述: 1991年San公司的JamesGosilng(詹姆斯·高斯林) 等人开始开发名称为Oak的语言,希望用于控制嵌入在有线电视交换盒,PDA等的微处理器; 1994年将Oak语言更名为Java; Java的三种技术架构; JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对wep程序的开发 JAVASE: Java Platform Enterprise Edition, 完成桌面应用程序的开发是其他两者的基础; JAVAME: Java DevelopmentKit, java的开发和运行环境,java的开发工具jre;

JDK, JRE: 1JDK:java DevelopmentKit , java的开发和运行环境,java的开发工具和jre。 2JRE:java Runtime Environment, java程序的运行环境,java运行的所需的类库+JVM(java 虚拟机)。 3配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 1) 永久配置方式: JAVA_HOME=%安装路径%\Java\jbk Path=%JAVA_HOME%\bin 2) 配置临时方式: setpath=%path%C:\ProgramFiles\Java\jdk\bin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置路径下找。 classpath的配置: 1)永久配置方式:classpath=.;c:\;e:\ 2)临时配置方式:setclasspath=.c:\;e:\ 注意:在定义classpath环境变量时,需要注意的情况: 如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件。如果指定了classpath,那么会在指定的目录下查找要运行的类文件。 还会在当前目录找吗?两种情况: 1)如果classpath的值结果有分号,在具体路径中没有找到运行的类,会默认在前目录 在找一次。 2)如果classpath的值结果处没有分号,在具体路径中没有找到运行的类,不会再当前 目录找。 一般不指定分号,如果没有在指定目录下找到想运行的类文件,就报错,这样可以调试程序4javac命令和java命令做什么事情呢? 要知道java是分两部分的: 一个人是编译,一个是运行。 Javac: 负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java 文件进行编译。生成了jvm可以识别的字节码文件。也就是class文件也就是java的运行程序。 Java: 负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行. 一个文件要被执行,必须要有一个执行的起始点就是main函数(也叫方法)。

实验二JAVA基本语法

实验二Java基本语法、数据输入和输出、流程控制 实验目的: 一.熟练掌握https://www.doczj.com/doc/7a2513799.html,ng.System类提供了3种标准输入和输出流 二.熟练掌握JDK1.5增加的java.util.Scanner和java.util.Printf() 三.熟练掌握图形界面的标准对话框: 四.熟练掌握程序运行时间的计算 五.熟悉Java基本语法、基本数据类型、运算符、流程控制语句的使用;能够阅读简单的Java程序,初步了解Java类、方法的定义和调用;能用Java语言解决一定的现实问题,完成其它计算机语言到Java语言的转变和知识迁移。 六.数组 知识准备 一.https://www.doczj.com/doc/7a2513799.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/7a2513799.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基础知识总结

基础预备:低级基础 1.1 java基本类型 byte(字节) short(短整型) int(整型) long(长整型) float(浮点型) double(双精度) char(字符型) boolean(布尔型) 1.2值传递和引用传递的区别 值传递:实参初始化形参,两个存储单元不同,不影响实参的值 引用传递:实际参数与形式参数指向同一个地址,形式参数的改变将会影响实际参数1.3当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 是值传递。方法调用该对象引用的参数,参数被改变,但是引用不会改变 1.4 &和&&的区别。 &和&&都是逻辑「与」,&&只要第一个表达式是false就不会计算第二个表达式 &也可以作为运算符 2.1使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变 引用变量不能变,引用变量所指向的对象中的内容可以改变 2.2final类型可不可以不初始化,如果没有初始化的final类型应该在哪里初始化? final一定有初始值,没有初始化叫空白final 如果没有需要声明之后在其构造器中赋值 2.3 "=="和equals方法究竟有什么区别? 「==」是看两个对象引用是否指向同一个对象 「 equals() 」是比较两个对象的内容是否相等 3.1静态变量和实例变量的区别 静态变量的变量前加了static 的修饰,其中一个对象将它值改变,其他对象得到的就是改变后的结果; 实例变量的变量前没加static 的修饰,某一个对象将其值改变,不影响其他对象

3.2是否可以从一个static方法内部发出对非static方法的调用?为什么? 不可以。使用非static方法需要先创建对象,而使用static方法则不用 4.1 java中什么是自动装箱与拆箱呢? 自动装箱是某地方需要Integer类型,你传int类型会自动生成Integer, 反之Integer变int,就是自动拆箱 4.2 int 和 Integer 有什么区别 Int是基本数据类型,Integer是int的封装类。 原始类型封装类 Boolean Boolean Char Character Byte Byte Short Short Int Integer Long Long Float Float Double Double 5.1请说出作用域public, protected,以及不写时的区别 不写是表示friendly。 作用域当前类同一package 子孙类其他package public √√√√ protected √√√× friendly √√×× private √××× 6.1能不能自己写个类,也叫https://www.doczj.com/doc/7a2513799.html,ng.String? 可以,但在应用的时候,需要用自己的类加载器去加载,否则,系统的类加载器永远只是去加载jre.jar包中的那个https://www.doczj.com/doc/7a2513799.html,ng.String。 7.1 排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 冒泡,选择,插入,快速 冒泡排序:

零基础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基础知识速成教程

数据类型 (1) 基本数据类型 (1) 引用类型 (3) 控制语句 (3) 顺序结构 (3) 选择结构 (3) 循环结构 (4) 面向对象 (5) 面向过程和面向对象的区别 (5) 类和对象 (5) 成员变量 (5) 方法 (5) 方法的重载(overload) .................................................................... 错误!未定义书签。 构造方法 (7) 内存分析 (7) package (9) import (10) this (10) static (11) super (11) 面向对象的三大特征 (11) 封装 (11) 继承 (12) 方法的重写(override) (12) 多态 (12) 抽象类 (14) 接口 (14) 面向接口编程......................................................................................... 错误!未定义书签。 本站已经对文档保护进行限制了,取消文档保护密码为:https://www.doczj.com/doc/7a2513799.html, 步骤:进入word 工具---》取消文档保护 数据类型 基本数据类型 a)数值型 i.整型 1.byte 1个字节(256) -128-127 2.short 2个字节(65536) 正负3万 3.int 4个字节正负21亿 4.long 8个字节

ii.浮点型 1.float 4个字节 2.double 8个字节 注: 类型的自动转换 b)字符型2个字节65536 unicode字符集 c)布尔型

零基础学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具体解析的原理和方法,有助于你在各个具体的场景中更好的选择合适你的方式来使得你的程序更有效率和更加健壮。

相关主题
文本预览
相关文档 最新文档