Java教程 第7页

Java Number类-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java Number类

一般情况下我们会使用数据的基本数据类型:byte、int、short、long、double、float、boolean、char; 对应的包装类型也有八种:Byte、Integer、Short、Long、Double、Float、Character、Boolean; 包装类型都是用 final 声明了,不可以被继承重写;在实际情况中编译器会自动的将基本数据类型装箱成对象类型,或者将对象类型拆箱成基本数据类型;如下: public static void main(String[] args) { int num1 = 1; //将基本数据类型装箱成对象包装类型 Integer num2 = num1; Integer num3 = 3; //将对象数据类拆箱 int num4 = num3; } Number 类是 java.lang 包下的一个抽象类,提供了将包装类型拆箱成基本类型的方法,所有基本类型(数据类型)的包装类型都继承了该抽象类,并且是final声明不可继承改变; package java.lang; public abstract class Number implements java.io.Serializable { public abstract int intValue(); public abstract long longValue(); public abstract float floatValue(); public abstract double doubleValue(); public byte byteValue() { return (byte)intValue(); } public short shortValue() { return (short)intValue(); } private static final long serialVersionUID = -8742448824652078965L; } 包装类 基本数据类型 Boolean boolean Byte byte Short short Integer int Long long Character char Float float Double double 这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。Number 类属于 java.lang 包。 下面是一个装箱与拆箱的例子: public class Test{    public static void main(String args[]){       Integer x = 5; // boxes int to an Integer object       x =  x + 10;   // unboxes the Integer to a int       System.out.println(x);     } } 以上实例编译运行结果如下: 15 当x被赋为整型值时,由于 x 是一个对象,所以编译器要对x进行装箱。然后,为了使x能进行加运算,所以要对x进行拆箱。 Java Math类 Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。 Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。...

Java 分支结构 - if…else/switch

顺序结构只能顺序执行,不能进行判断和选择,因此需要分支结构。 Java有两种分支结构: if语句 switch语句 if语句 一个if语句包含一个布尔表达式和一条或多条语句。 语法 If 语句的用语法如下: if(布尔表达式) { //如果布尔表达式为true将执行的语句 } 如果布尔表达式的值为 true,则执行if语句中的代码块。否则执行 If 语句块后面的代码。 public class Test { public static void main(String args[]){ int x = 10; if( x < 20 ){ System.out.print("这是 if 语句"); } } } 以上代码编译运行结果如下: 这是 if 语句 if…else 语句 if 语句后面可以跟 else 语句,当if语句的布尔表达式值为 false 时,else 语句块会被执行。 语法 if…else 的用法如下: if(布尔表达式){ //如果布尔表达式的值为true }else{ //如果布尔表达式的值为false } 实例 public class Test { public static void main(String args[]){ int x = 30; if( x < 20 ){ System.out.print("这是 if 语句"); }else{ System.out.print("这是 else 语句"); } } } 以上代码编译运行结果如下: 这是 else 语句 if…else if…else 语句 if 语句后面可以跟 else if…else 语句,这种语句可以检测到多种可能的情况。 使用if,else if,else语句的时候,需要注意下面几点: if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。 If 语句可以有若干个 else if 语句,它们必须在...

Java 循环结构 - for, while 及 do…while

顺序结构的程序语句只能被执行一次。如果您想要同样的操作执行多次,,就需要使用循环结构。 Java中有三种主要的循环结构: while循环 do…while循环 for循环 在Java5中引入了一种主要用于数组的增强型for循环。 while循环 while是最基本的循环,它的结构为: while( 布尔表达式 ) { //循环内容 } 只要布尔表达式为true,循环体会一直执行下去。 实例 public class Test { public static void main(String args[]) { int x = 10; while( x < 20 ) { System.out.print("value of x : " + x ); x++; System.out.print("\n"); } } } 以上实例编译运行结果如下: value of x : 10 value of x : 11 value of x : 12 value of x : 13 value of x : 14 value of x : 15 value of x : 16 value of x : 17 value of x : 18 value of x : 19 do…while循环 对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。 do…while循环和while循环相似,不同的是,do…while循环至少会执行一次。 do { //代码语句 }while(布尔表达式); 注意:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为true,则语句块一直执行,直到布尔表达式的值为false。 实例 public class Test { public static void main(String args[]){ int...

Java 变量类型

在 Java 语言中,所有的变量在使用前必须声明。声明变量的基本格式如下: type identifier [ = value][, identifier [= value] ...] ; 格式说明:type 为 Java 数据类型。identifier 是变量名。可以使用逗号隔开来声明多个同类型变量。 以下列出了一些变量的声明实例。注意有些包含了初始化过程。 int a, b, c;         // 声明三个int型整数:a、b、c。 int d = 3, e, f = 5; // 声明三个整数并赋予初值。 byte z = 22;         // 声明并初始化z。 double pi = 3.14159; // 声明了pi。 char x = 'x';        // 变量x的值是字符'x'。 Java 语言支持的变量类型有: 局部变量:类的方法中的变量。 实例变量:独立于方法之外的变量,不过没有 static 修饰。 类变量:独立于方法之外的变量,用 static 修饰。 public class Variable{ static int allClicks=0; // 类变量 String str="hello world"; // 实例变量 public void method(){ int i =0; // 局部变量 } } Java局部变量 局部变量声明在方法、构造方法或者语句块中; 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁; 访问修饰符不能用于局部变量; 局部变量只在声明它的方法、构造方法或者语句块中可见; 局部变量是在栈上分配的。 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。 实例1 在以下实例中 age 是一个局部变量。定义在 pupAge() 方法中,它的作用域就限制在这个方法中。 public class Test{ public void pupAge(){ int age = 0; age = age + 7; System.out.println("Puppy age is : " + age);...

Java 基本数据类型

变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。 因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。 Java的两大数据类型: 内置数据类型 引用数据类型 内置数据类型 Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。 byte型: byte数据类型是8位、有符号的,以二进制补码表示的整数; 最小值是-128(-2^7); 最大值是127(2^7-1); 默认值是0; byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一; 例子:byte a = 100,byte b = -50。 short型(短整型): short数据类型是16位、有符号的以二进制补码表示的整数 最小值是-32768(-2^15); 最大值是32767(2^15 – 1); Short数据类型也可以像byte那样节省空间。一个short变量是int型变量所占空间的二分之一; 默认值是0; 例子:short s = 1000,short r = -20000。 int型(整型): int数据类型是32位、有符号的以二进制补码表示的整数; 最小值是-2,147,483,648(-2^31); 最大值是2,147,483,647(2^31 – 1); 一般地整型变量默认为int类型; 默认值是0; 例子:int a = 100000, int b = -200000。 long(长整型): long数据类型是64位、有符号的以二进制补码表示的整数; 最小值是-9,223,372,036,854,775,808(-2^63); 最大值是9,223,372,036,854,775,807(2^63 -1); 这种类型主要使用在需要比较大整数的系统上; 默认值是0L; 例子: long a = 100000L,long b = -200000L。 float(单精度浮点型): float数据类型是单精度、32位、符合IEEE 754标准的浮点数; float在储存大型浮点数组的时候可节省内存空间; 默认值是0.0f; 浮点数不能用来表示精确的值,如货币; 例子:float f1 = 234.5f。 double(双精度浮点型): double数据类型是双精度、64位、符合IEEE 754标准的浮点数; 浮点数的默认类型为double类型; double类型同样不能表示精确的值,如货币; 默认值是0.0d; 例子:double d1 = 123.4。 boolean(布尔型): boolean数据类型表示一位的信息; 只有两个取值:true和false; 这种类型只作为一种标志来记录true/false情况; 默认值是false; 例子:boolean one = true。 char(字符型): char类型是一个单一的16位Unicode字符; 最小值是’\u0000’(即为0); 最大值是’\uffff’(即为65,535); char数据类型可以储存任何字符; 例子:char letter = ‘A’。 实例 对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。请看下面的例子: public class PrimitiveTypeTest { public static void main(String[] args) { // byte System.out.println("基本类型:byte...

Java 对象和类

在理解Java的类和对象之前,先简单介绍一下面向对象的程序设计。程序设计是通过对象对程序进行设计,对象代表一个实体,实体可以清楚地被识别。 Java作为一种面向对象语言。支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 消息解析 本节我们重点研究对象和类的概念。 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类:类是一个模板,它描述一类对象的行为和状态。 Java中的对象 现在让我们深入了解什么是对象。看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。 拿一条狗来举例,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。 对比现实对象和软件对象,它们之间十分相似。 软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。 在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。 Java中的类 类可以看成是创建 Java 对象的模板。 通过下面一个简单的类来理解下 Java 中类的定义: public class Dog{ String breed; int age; String color; void barking(){ } void hungry(){ } void sleeping(){ } } 一个类可以包含以下类型变量: 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。 类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。 一个类可以拥有多个方法,在上面的例子中:​barking()​、​hungry()​和 ​sleeping()​都是 Dog 类的方法。 构造方法 每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。 在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。 下面是一个构造方法示例: public class Puppy{ public Puppy(){ } public Puppy(String name){ // 这个构造器仅有一个参数:name } } 创建对象 对象是根据类创建的。在 Java 中,使用关键字 ​new​ 来创建一个新的对象。创建对象需要以下三步: 声明:声明一个对象,包括对象名称和对象类型。 实例化:使用关键字 ​new​ 来创建一个对象。 初始化:使用 ​new​ 创建对象时,会调用构造方法初始化对象。 下面是一个创建对象的例子: public class Puppy{ public Puppy(String name){ //这个构造器仅有一个参数:name System.out.println("Puppy Name is :" + name ); } public static void main(String []args){ // 下面的语句将创建一个Puppy对象 Puppy myPuppy = new Puppy( "tommy" ); } } 编译并运行上面的程序,会打印出下面的结果: Puppy...

Java 基础语法

一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类:类是一个模板,它描述一类对象的行为和状态。 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。 第一个Java程序 下面看一个简单的 Java 程序,它将打印字符串 Hello World public class MyFirstJavaProgram { /* 第一个Java程序. * 它将打印字符串 Hello World */ public static void main(String []args) { System.out.println("Hello World"); // 打印 Hello World } } 下面将逐步介绍如何保存、编译以及运行这个程序: 打开Notepad,把上面的代码添加进去; 把文件名保存为:MyFirstJavaProgram.java; 打开cmd命令窗口,进入目标文件所在的位置,假设是C:\ 在命令行窗口键入 javac MyFirstJavaProgram.java  按下 enter 键编译代码。如果代码没有错误,cmd 命令提示符会进入下一行。(假设环境变量都设置好了)。 再键入 java MyFirstJavaProgram 按下 Enter 键就可以运行程序了 你将会在窗口看到 Hello World C : > javac MyFirstJavaProgram.java C : > java MyFirstJavaProgram Hello World 基本语法 编写Java程序时,应注意以下几点: 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。 主方法入口:所有的Java 程序由​public static void main(String[] args)​ 方法开始执行。 Java标识符 Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。 关于Java标识符,有以下几点需要注意: 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合 关键字不能用作标识符 标识符是大小写敏感的 合法标识符举例:age、$salary、_value、__1_value 非法标识符举例:123abc、-salary Java修饰符 像其他语言一样,Java可以使用修饰符来修饰类中方法和属性。主要有两类修饰符: 访问控制修饰符 : default, public , protected, private 非访问控制修饰符 : final, abstract, static,synchronized 和 volatile 在后面的章节中我们会深入讨论Java修饰符。 Java变量 Java中主要有如下几种类型的变量 局部变量 类变量(静态变量) 成员变量(非静态变量) Java数组 数组是储存在堆上的对象,可以保存多个同类型变量。在后面的章节中,我们将会学到如何声明、构造以及初始化一个数组。 Java枚举 Java 5.0引入了枚举,枚举限制变量只能是预先设定好的值。使用枚举可以减少代码中的 bug 。...

Java If语句-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java If语句

Java教程 – Java If语句 Java if语句用于根据条件执行一个代码块。 Java If语句 下面是Java if语句的最简单形式: if(condition) statement; condition 是一个布尔表达式。如果 condition 是 true 那么执行语句。 如果 condition 是 false ,那么绕过语句。 以下代码根据an的值输出消息整数。 它使用if语句来执行检查。 public class Main { public static void main(String args[]) { int num = 99; if (num < 100) { System.out.println("num is less than 100"); } } } 此程序生成的输出如下所示: 例子 If语句经常用于比较两个变量。下面的代码定义了两个变量, x 和 y ,它使用if语句来比较它们并打印出消息。 public class Main { public static void main(String args[]) { int x, y; x = 10; y = 20; if (x < y){ System.out.println("x is less than y"); } x = x * 2; if (x == y){ System.out.println("x now equal to y"); } x = x * 2; if (x > y){ System.out.println("x now greater than y"); } if (x...

Log4j 安装

Log4j教程 – Log4j安装 Log4j API包是根据Apache软件许可证分发的。 最新的log4j版本,包括全源代码,类文件和文档可以在http://logging.apache.org/log4j/找到。 我们可以从上面的链接下载apache-log4j-x.x.x.tar.gz或zip文件。  注意:log4j以下版本存在0day漏洞,尽量避免使用这些版本!!!     Apache log4j2 2.0 – 2.14.1 支持库 我们可以使用log4j将信息记录到各种目的地,例如发送电子邮件,数据库或文件。 有一个我们需要放到classpath的库的列表,以便log4j可以拿起它并使用它。 例如,当从log4j发出电子邮件时,我们需要电子邮件库jar文件。 库是可选的,并且取决于我们将要与log4j框架一起使用的功能。 JavaMail API(mail.jar): 从https://glassfish.dev.java.net/javaee5/mail/用于基于电子邮件的日志记录。 JavaBeans Activation Framework(activation.jar): 来自http://java.sun.com/products/javabeans/jaf/index.jsp。 Java Message Service: 用于JMS和JNDI。 XML Parser(Xerces.jar): 来自http://xerces.apache.org/xerces-j/install.html。 Maven和Log4j 首先,使用以下maven命令创建一个空的Maven项目。 C:\mvn_test>mvn archetype:generate -DgroupId=com.w3cschool.ide -DartifactId=MyTest -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 然后,转到项目文件夹并找到pom.xml,添加以下依赖关系。 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> 之后,将以下代码添加到在resources文件夹下创建的log4j.properties。 MyTest | +-src | +-main | +-java | | | +-com | | | +-w3cschool | | | +-ide | +-resources | +- log4j.properties 如上面的文件夹结构所示,资源位于java文件夹的保存级别。 对于Java Web应用程序,将log4j.properties文件存储在WEB-INF/classes目录下 将以下配置保存到log4j.properties文件中。 # Root logger option log4j.rootLogger=DEBUG, stdout, file # Redirect log messages to console log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n # Redirect log messages to a log file, support file rolling. log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=C:\\log4j.log log4j.appender.file.MaxFileSize=5MB log4j.appender.file.MaxBackupIndex=10 log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L -...

Java char数据类型-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java char数据类型

Java数据类型教程 – Java char数据类型 char数据类型是16位无符号Java基元数据类型。它表示Unicode字符。 请注意,char是无符号数据类型。因此,char变量不能为负值。 字符数据类型的范围为0到65535,这与Unicode集的范围相同。 字符字面量 字符字面量表示char数据类型的值。 Java中的字符字面量可以用以下格式表示: 用单引号括起来的字符 作为字符转义序列 作为Unicode转义序列 作为八进制转义序列 字符可以通过用单引号括起来表示。 以下代码段使用此形式为char变量赋值: char c1 = 'A'; char c2 = 'L'; char c3 = '5'; char c4 = '/'; 用双引号括起来的字符序列是一个String字面量。 不能将字符串字面量分配给char变量,即使String字面量只有一个字符。 字符转义序列 字符字面量可以表示为字符转义序列。 字符转义序列以反斜杠开头,后面紧跟一个字符,并且都用单引号括起来。 有八个预定义的字符转义序列,如下表所列。 字符转义序列 描述 ‘\n’ 换行 ‘\r’ 回车 ‘\f’ 表单Feed ‘\b’ 退格 ‘\t’ 标签 ‘\\’ 反斜杠 ‘\”‘ 双引号 ‘\” 单引号 Java中只有八个字符转义序列。我们不能定义你自己的字符转义序列。 char c1 = "\n"; // Assigns a linefeed to c1 char c2 = "\""; // Assigns double quote to c2 char c3 = "\a"; // A compile-time error. Invalid character escape sequence Unicode 字符字面量可以表示为“\ uxxxx”形式的Unicode转义序列。 这里, \u 表示Unicode转义序列的开始,xxxx正好表示四个十六进制数字。 由xxxx表示的值是字符的Unicode值。 字符’A’有65 65十进制可以用十六进制表示为41的值的Unicode值。 因此,字符’A’可以用Unicode转义序列表示为’\ u0041’。 以下代码将相同的字符“A”分配给char变量c1和c2: char c1 = "A"; char c2 = "\u0041"; // Same as c2 = "A" 字符文字可以表示为形式为’\ nnn’的八进制转义序列。 这里,n是八进制数(0-7)。八进制转义序列的范围是’\ 000’到’\ 377’。...