编译好Java字节码文件后,接下来就应该运行Java程序了. 运行Java程序需要使用JDK中提供的java命令,因为已经把java命令所在的路径添加到了系统的Path环境变量中,因此现在可以直接使用java命令来运行Java程序了. 在刚才打开的控制台中(如果控制台已经关闭了,那么就按“Windows+R”键打开运行窗口,然后输入“cmd”并点击“确定”按钮进入控制台,然后在控制台中输入“cd c:\java”进入字节码文件所在的目录)继续输入“java HelloWorld”,然后按回车键确…
编写好Java程序的源代码后,接下来就应该编译该Java源文件来生成字节码文件了. 编译Java程序需要使用JDK中提供的javac命令,因为已经把javac命令所在的路径添加到了系统的Path环境变量中,因此现在可以直接使用javac命令来编译Java程序了. 使用Windows+R键打开“运行”然后输入cmd点击“确定”进入控制台,如图34所示. 图34  通过“运行”进入控制台 在控制台中使用cd命令进入HelloWorld.java所在的目录:C:\java.如图35所示. 图35  在…
现在我们来一步一步的编写第一个Java程序,鼎鼎大名的“HelloWorld”. 编写Java源代码 编写Java源代码可以使用任何无格式的文本编辑器,在Windows操作系统上可以使用记事本.Edit Plus等程序. 编写Java程序不要使用写字板,更不可使用Word等文档编辑器,因为写字板.Word等工具是有格式的编辑器,当使用它们编辑一份文档时,这个文档中会包含一些隐藏的格式化字符,这些隐藏的字符会导致程序无法正常编译和运行. 在C盘中新建java文件夹,在java文件夹中使用鼠标右键新…
引用:http://blog.chinaunix.net/uid-27106528-id-5209914.html 要在CMD命令行中使用java 运行java程序,关于出现 “找不到或无法加载主类 ”错误的解决办法,   网络上基本都是在说关于"classpath"路径的配置问题,要加入 ” .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;“    前面加入”.;",表面要在当前目录下面寻找类.       如果你试过了…
Java基础教程:Java内存区域 运行时数据区域 Java虚拟机在执行Java程序的过程种会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁. 根据<Java虚拟机规范>,Java虚拟机管理的内存将会包括以下几个运行时数据区域 程序计数器 程序技术器是一块较小的内存空间,可视为当前线程所执行的字节码的行号计时器. 在多线程开发中,为了线程切换后能恢复到正确的执行位置,每…
一.Java的class文件的内容 1.首先编写一个简单的代码 public class StringDemo { public static void main(String[] args) { String s=new String("hello world"); System.out.println(s); } } 2.运行程序编译成class文件,class文件的查看可以用Java class文件分析工具 -- Classpy 3.这种字节码文件我们肯定看不懂,所以我们可以通过…
Java语言中除了非常重要的跨平台特性外,还有如下几个关键特性: ●  语法简单易学 Java语言的语法简单明了,容易掌握,而且是纯面向对象(OOP)的语言,Java语言的简单性主要体现在以下几个方面: 语法规则和C++类似.从某种意义上讲,Java语言是由C和C++语言转变而来的,所以C程序设计人员可以很容易地掌握Java语言的语法.(C和C++属于高级语言,是最接近人类的语言,而不是像机器码和汇编语言那样生涩难以理解的语言) Java语言对于C++进行了简化和提高.例如,Java使用接口取代…
从JDK5之后,Java提供了一种更简单的循环:foreach循环,也叫作增强for循环,这种循环遍历数组和集合更加简洁.使用foreach循环遍历数组和集合元素时,无需获得数组或集合的长度,无需根据索引来访问数组元素或集合元素,foreach循环自动遍历数组或集合的每个元素. foreach循环的语法格式如下: for(type variableName:array|collection){ //variableName自动迭代访问每个元素 } 在上面语法格式中,type是数组元素或集合元素的…
do-while循环 Java还有一种循环是do-while.与for.while这些在循环顶部判断条件表达式的语句不同,do-while是在循环底部进行条件表达式的检查.这意味着do-while循环至少要执行一次循环体.do-while循环的语法格式如下: do{ 循环体; }while(循环条件); 与while循环不同的是,do-while循环的循环条件后必须有一个分号,这个分号表明循环结束. 例:下面的程序演示了do-while循环的执行流程: public class DoWhileD…
while循环 Java中的另外一种循环是while循环.while循环的语法格式如下: while(条件表达式){ 循环体; } 其中条件表达式定义了控制循环的条件,可以使任何有效的boolean表达式,条件为真时,循环会迭代.条件为假时,程序控制流会立刻转移到循环后面的代码. 例:下面是一个使用while循环输出字母表的简单示例: public class WhileDemo{ public static void main(String[] args){ char ch = 'a'; wh…
循环语句可以在满足循环条件的情况下,反复执行某一点代码,这段被重复执行的代码被称为循环体,当反复执行这个循环体时,需要在合适的时候把循环条件该为假,从而结束循环,否则循环将一直执行下去,形成死循环.循环语句可能包含如下4个部分: 1.初始化语句:一个或多条语句,这些语句用于完成一些初始化工作,初始化语句在循环开始之前执行. 2.循环条件:这是一个boolean表达式,这个表达式能决定是否执行循环体. 3.循环体:这个部分是循环的主体,如果循环条件允许,这个代码块将被重复执行.如果这个代码块只有一…
4  嵌套if-else条件语句 嵌套if语句是作为另一个if或else语句的目标的if语句.嵌套if语句在程序设计中非常普遍.Java中,关于嵌套if语句需要记住的是,else语句总是和同一代码块中最近的且没有else与之匹配的if语句相匹配,语法格式如下所示: if(判断条件A){ if(判断条件B){ A语句块 } if(判断条件C){ B语句块 }else{ C语句块 } }else{ D语句块 } 例:下面将演示嵌套if的执行流程: public class IfElseIfElseD…
类型转换是将一个值从一种类型更改为另一种类型的过程.例如,可以将String(字符串,字符串是Java中非常特殊的数据类型,字符串属于引用类型,但是可以像基本类型一样使用字面值赋值)类型数据“456”转换为一个数值型,而且可以将任意类型的数据转换为String类型. 如果从低精度(比如byte,最大值127)数据类型向高精度(比如short,最大值32767)数据类型转换,则永远不会溢出,并且总是成功的:而把高精度数据类型向低精度数据类型转换则必然会有信息丢失,有可能失败. 数据类型转换有两种方…
Java语言也和其它编程语言一样,使用标识符作为变量.对象的名字.也提供了一系列的关键字用以实现特别的功能.本小节将详细介绍Java语言的标识符和关键字等内容. 1.分隔符 Java语言里的分号“;”.花括号“{}”.方括号“[]”.圆括号“()”.空格.圆点“.”都具有特殊的分隔作用,因此被统称为分隔符. Ø  分号 Java语言中对语句的分隔不是使用回车来完成的,Java语言采用分号“;”作为语句的分隔,因此每个Java语句必须使用分号作为结尾.Java程序允许一行书写多个语句,每个语句之间…
变量的作用域和生命周期 到目前为止,使用的所有变量都是在main()方法开始时声明的,然而,Java允许在任何代码块(代码块以开花括号开始,以闭花括号结束)中声明变量,代码块定义了作用域.因此,每当开始一个新的代码块时就创建了一个新的作用域.作用域决定了变量(对象)对程序的其它部分的可见性,并且也决定了这些变量(对象)的生命周期. 许多其他的计算机语言定义了两种通用的作用域类别,全局作用域和局部作用域.然而这些传统的作用域不能很好地适应Java中严格的.面向对象的模型.虽然可以创建属于全局作用域…
1.请说明JVM.JRE和JDK是什么?它们有什么关系? JVM是Java虚拟机,Java Virtual Machine的缩写,是一个虚构出来的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的.Java虚拟机有自己完善的硬体架构,如处理器.堆栈.寄存器等,还具有相应的指令系统.JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行. JRE是Java运行环境,Java Runtime Enviro…
在安装完JDK后,我们需要配置系统的环境变量,否则在控制台中使用JDK为我们提供的工具时将出现如图12所示的错误信息. 图12  未配置环境变量时执行java命令提示的错误信息 当出现这样的提示信息时,表示系统找不到JDK提供的工具的具体位置,所以没办法执行我们的命令,这时我们就需要配置环境变量,将我们JDK中存放各种工具的目录添加到系统环境变量Path中. 目前我们使用的操作系统主要有两个版本:Windows 7和Windows 10,这两个版本的操作系统配置环境变量时有一些细微的差别,本书会…
因为我们要开发Java程序,所以必须在我们的计算机中安装Sun(Oracle)公司提供给我们的JDK.目前最新版本的JDK是JDK 10,但是我们以学习JDK 8为主,所以我们要安装的版本是JDK 8.安装步骤如下: 1.下载JDK 1)打开浏览器,输入www.oracle.com,进入Oracle公司的官方网站,然后点击Top Actions菜单上的Downloads链接,如2所示: 图 Oracle官方网站 2)点击Download后,将跳转到Oracle全部应用的下载页面,在该页面中我们找…
要想开发Java程序,就需要知道什么是JVM.JRE以及JDK.JVM是运行Java程序的核心,JRE是支持Java程序运行的环境,而JDK是Java开发的核心,下面我们分别具体介绍它们以及它们之间的关系. 1.JVM(Java Virtual Machine,Java虚拟机) Java虚拟机简称JVM,是一个抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域(内存中不同的区域),JVM也就是Java程序的解释器.不同平台上的JVM也是不同的,但是它们都提供了相同的接口,JVM是…
什么是平台 Java是可以跨平台的编程语言,那么首先我们需要知道什么是平台,通常我们把CPU与操作系统的整体称为平台. CPU大家都知道,是计算机的大脑,它既负责思维运算,又负责计算机中各种零部件的命令控制.CPU的种类非常多,目前我们使用的主流的CPU是由Inter和AMD公司生产的各种CPU.这些CPU使用相同或不同的指令集,指令集就是CPU中用来计算和控制计算机系统的一套指令的集合.指令集又分为精简指令集和复杂指令集,每种CPU都有其特定的指令集.开发应用程序,首先要知道程序在什么CPU上…
自从Sun公司推出Java以来,就力图使之无所不能.Java发展至今,按应用范围划分为3个版本,即Java SE.Java EE和Java ME,也就是SunOne(Open Net Environment)体系. 1.Java SE(Java Platform Standard Edition) Java SE是Java的标准版,Java SE之前也叫做J2SE,它允许开发和部署在桌面.服务器.嵌入式环境和实施环境中使用的Java应用程序.JavaSE是Java的基础,它包含了Java语言基础…
只有少数几种编程语言对程序设计带来过根本性的影响.其中,Java的影响由于迅速和广泛而格外突出.可以毫不夸张的说,1995年Sun公司发布的Java1.0给计算机程序设计领域带来了一场变革.这场变革迅速地把Web转变了一个高度交互的环境,也给计算机语言的设计设置了一个新标准. 多年以来,Java不断地发展.演化和修订.和其他语言加入新功能的动作迟缓不同,Java一直站在计算机程序设计语言的前沿,部分原因是变革的文化,部分原因是它所面对的变化.Java已经做过或大或小的多次升级. 第一次主要的升级…
使用continue忽略本次循环剩下的语句 continue的功能和break有点类似,区别是continue只是忽略本次循环剩下的语句,接着开始下一次循环,并不会终止循环:而break则是完全终止循环本身.如下程序示范了continue的用法. public class ContinueDemo{ public static void main(String[] args){ for(int i = 0; i<3; i++){ System.out.println("i的值是"…
使用continue忽略本次循环剩下的语句 continue的功能和break有点类似,区别是continue只是忽略本次循环剩下的语句,接着开始下一次循环,并不会终止循环:而break则是完全终止循环本身.如下程序示范了continue的用法. public class ContinueDemo{ public static void main(String[] args){ for(int i = 0; i<3; i++){ System.out.println("i的值是"…
使用continue忽略本次循环剩下的语句 continue的功能和break有点类似,区别是continue只是忽略本次循环剩下的语句,接着开始下一次循环,并不会终止循环:而break则是完全终止循环本身.如下程序示范了continue的用法. public class ContinueDemo{ public static void main(String[] args){ for(int i = 0; i<3; i++){ System.out.println("i的值是"…
Java语言没有提供goto语句来控制程序的跳转,这种做法提高了程序流程控制的可读性,但降低了程序流程控制的灵活性.为了弥补这种不足,Java提供了continue和break来控制循环结构.除此之外,return可以结束整个方法,当然也就结束了一次循环. 使用break结束循环 某些时候需要在某种条件出现时强行终止循环,而不是等到循环条件为false时才退出循环.此时,可以使用break来完成这个功能.break用于完全结束一个循环,跳出循环体.不管是哪种循环,一旦在循环体中遇到break,系…
5  switch-case条件语句 Java中的第二种分支控制语句时switch语句,switch语句提供了多路支持,因此可以使程序在多个选项中进行选择.尽管一系列嵌套if语句可以执行多路测试,然而多数情况下使用switch则更为高效.其完整形式如下: switch(expression){ case constant1: statement sequence; break; case constan2: statement sequence; break; ... ... default:…
表8中显示的布尔逻辑运算符只能操作布尔类型的操作数,所有的二元逻辑运算符都可以组合两个布尔值,得到的结果为布尔类型. 表8  布尔逻辑运算符 布尔逻辑运算符”&“.”|“以及”^“,都会布尔值进行操作,操作方式与它们操作整数中位的方式相同.逻辑非运算符”!“反转布尔状态:!true==false并且!false==true.表9中显示了各种逻辑操作的效果. 表9  逻辑操作效果 下面的程序和前面演示的BitLogic程序几乎相同,但该程序是对布尔型逻辑值进行操作,而不是对二进制位进行操作. pu…
Java定义了几个位运算符,它们都可以用于整数类型(long.int.short.byte以及char).这些运算符对操作数的单个位进行操作.表1 对位运算符进行了总结. 表1  位运算符 由于位运算符是对整数中的位进行操作,因此理解这类操作会对数值造成什么影响是很重要的.特别是,掌握Java存储整数数值的方式以及如何表示负数是有用的.因此,在介绍位运算符之前,先简要描述以下这两个主题. 在Java中,所有整数类型都由宽度可变的二进制数字表示.例如,byte型数值42的二进制形式是0010101…
Java提供了丰富的运算符环境.可以将大部分Java运算符划分为4组:算术运算符.位运算符.关系运算符以及逻辑运算符.Java还定义了一些用于处理某些特定情况的附加运算符.本章将介绍除类型比较运算符instanceof和新的箭头运算符->之外的所有Java运算符. 算符运算符 算术运算符用于数学表达式,使用方式与在代数中的使用方法相同.表1中列出了算术运算符. 表1  算术运算符 算术运算符的操作数必须是数值类型.不能为boolean类型使用算术运算符,但是可以为char类型使用算术运算符,因为…