java:
内容源自:《java入门到精通》
感谢大神!!!
package Test;
//public class Test11 {
// //Test11是一个类名。class时判断Test11为一个类名的关键字,而public用来修饰类的修饰符。
// //每个基础类都有一个类体,使用大括号包括起来
// public static void main (String args[]){
// //这是一个特殊方法,主体是main,其他的都是修饰内容。这条代码语句是一个java类固定的内容。
// /*其中main定义一个Java程序的入口。和类具有类体,方法具有方法一样,其同样也要使用大括号括起来。*/
// System.out.println("hello world"); //输出
// }
//}
//一:标识符
/**标识符是为自己定义的类,方法或者变量等起的名称,例如Hello World和main都是标识符。其中Hello World是类名,
- main是方法名,除此之外还可以为变量名。类型名。数组名等。
- Java标识符规定:大小写字母、数字、下划线和美元符号($)组成。不能以数字开头
- 在java中标识符是严格区分大小写的,HELLO和hello是完全不同的标识符。
- **标识符不能使用JAVA语言中的关键字。
- 包名:使用小写字母;
- 类名和接口名:通常定义为具有含义的单词组成,所有单词的首字母大写;
- 方法名:通常也是有有具有含义的单词组成,第一个单词的字母小写,其他单词的首字母都大写;
- 变量名:成员变量和方法相同,局部变量全部使用小写;
- 常量名:全部使用大写,最好使用下划线分隔单词。*/
//关键字
/**java中不能使用关键字作为标识符,这些关键字只能由系统使用。在程序中,关键字具有特殊的意义,java平台根据关键字来执行程序操作。
- 1.访问修饰符关键字
- 在Hello World程序中出现的第一个单词就是public,他就是一个访问修饰符关键字。修饰符关键字包括如下几种:
- public:所修饰的类、方法和变量是公共的,其他类可以访问改关键字修饰的类、方法或者变量;
- Protected:用于修饰方法和变量。这些方法和变量可以被同一个包中的类或者子类进行访问;
- private:同样修饰方法和变量。方法和变量只能由所在类进行访问。
- 2.类、方法和变量修饰符关键字
- class:告诉系统后面的单词是一个类名,从而定义一个类;
- interface:告诉系统后面的单词是一个接口名,从而定义一个接口;
- implements:让类实现接口;
- extends:用于继承;
- abstract:抽象修饰符;
- static:静态修饰符;
- new:实例化对象*/
//流量控制关键字
/*流量控制语句包括if-else语句、switch-case-default语句、for语句、do-while语句、break语句、continue语句和ruturn语句,
- 这些都是流量控制关键字。还有一个关键字应该也包括在流量控制关键字中,那就是instanceof关键字,用于判断对象是否是类或者接口的实例。*/
//异常处理关键字
/*异常处理的基本结构是try-catch-finally,这三个单词都是关键字,异常处理中还包括throw和throws这两个关键字。
- assert关键字用于断言操作中,也是异常处理关键字。*/
//包控制关键字
/*包控制关键字只有两个,分别是import和package。inport关键字用于将包或者类导入到程序中,
- pachage关键字用于定义包,并将类定义到这个包中*/
//数据类型关键字
/*java语言中有8中基本数据类型,每一种基本数据类型都需要一个关键字来定义,除布尔型(booleam)、字符型(char)、字节型(byte)外,
- 还有数值型。数值型又分为short、int、long、flort和double;
*/
//特殊类型和方法关键字
/*super关键字用于引用父类,this关键字应用于当前类对象。void关键字用于定义一般方法,该方法没有任何返回值。在Hello World程序中的
- main方法钱就有该关键字。*/
//没有使用的关键字
/const和goto/
/*=所有的关键字都是小写,如果采用了大写,那肯定就不是关键字======*/
//注释
//单行注释(//),多行注释(//),文档注释(/ */).
//二:基本数据类型
//变量和常量
//常量是不可改变的数值,而变量表示能够改变的数值。
//public class Test11{
// public static void main(String[]args){
// final double PI=3.14;
// int R=5;
// double ymj=PI*R*R;
// System.out.println("圆的面积等于"+ymj);
// }
//}
/*求面积需要两个值,分别是PI和半径。PI是一个固定的值,所以用常量来表示。从而知道定义常量需要final这个关键字。
- 圆的半径是变化的,多愿意需要一个变量来表示。上述代码中的常量和变量前都有一个关键字double和int,这是定义的数据类型*/
import java.util.zip.ZipEntry;
//数据类型
/*java中用户存放证书的数据类型成为整数类型。
- 整数类型根据占用的内存空间位数不同 可以分为四种:byte(字节型)、short(短整型)、int(整型)、long(长整型;
- 定义数据时默认int类型。内存空间决定了数据类型的取值范围。
- **在java中通过3种方式来表示整数,分别是十进制,八进制,十六进制。
- 八进制:使用0-7来进行表示,使用八进制表示整数必须在该数的前面放置一个“0”,下面是十进制和八进制数值进行比较的程序*/
//public class Test11{
// public static void main(String[]args){
// int a10=12;
// int a8=012;
// System.out.println("十进制12等于"+a10);
// System.out.println("八进制12等于"+a8);
// }
//}
/
/当一个数值以“0”开头,则表示该数值是一个八进制数值,从运行结果中也可以看出该值为十进制的10.
//十六进制:除了0-9外,还是用a-f分别表示10-15的数值。表示十六进制时,字母不区分大小写,也就是a=10,A=10.
//十六进制的特殊表达方式,以“0X”或者“0x”开头。
//public class Test11{
// public static void main(String[]args){
// int a1=0x12; //定义一个以数字表示的十六进制整数
// int a2=0xcafe; //定义一个以字母表示的十六进制整数
// System.out.println("第一个十六进制数值等于"+a1);
// System.out.println("第二个十六进制数值等于"+a2);
// }
//}
/
/定义为long长整型,需要在数值后面加上L或者l,例如定义长整型的12数值,则应该为12L.
//浮点类型
/*浮点类型和整数类型一样,也是用来表示数值。整数类型是表示整数,而浮点类型表示的小数,在java中不称作小数,而成为浮点数。
- 浮点类型就是java中的浮点数。java中的浮点类型分为两种,分别是单进度浮点类型和双精度浮点类型。*/
//使用单精度浮点类型时,数值后+F或者f。
//使用双精度浮点类型时。数值后+D或者d。但是他不是必须的,因为双精度浮点类型是默形式
//public class Test11{
// public static void main(String[]args){
// float f=1.23f; //定义一个单精度浮点类型
// double d1=1.23; //定义一个不带后缀的双精度浮点类型
// double d2=1.23D; //定义一个带后缀的双精度浮点类型
// System.out.println("单精度浮点类型数值等于"+f);
// System.out.println("双精度浮点类型数值等于"+d1);
// System.out.println("双精度浮点类型数值等于"+d2);
// }
//}
//如果将定义单精度浮点类型数值后的f去掉,该程序就会发生错误。定义爽精度浮点类型是,是否欧后缀对结果是没有变化的。
//字符类型
/** 在开发中,经常要定义一些字符,例如“A”,这时候就要用到字符类型。
- 在java中,字符类型就是用于存储字符的数据类型。
- 编码格式:Unicode码表示字符。Unicode码中定义了至今人类语言的所有字符集。
-
Unicode码通过"\\uxxxx"来表示,x表示的十六进制数值。--其中只有一个\,但是会报错,所以加一个\(转义)
-
Unicode编码字符是用16位无符号整数表示的*/
//public class Test11{
// public static void main(String[]args){
// char a='A';
// char b='\u003a';
// System.out.println("第一个字符集类型的值等于"+a);
// System.out.println("第二个字符类型的值等于"+b);
// }
//}
/*定义字符类型数值时,可以直接定义一个字符。也可以是用Unicode码定义。还有一些是受操作系统的影响不能显示的,
- 通常会显示一个问号,这时候Unicode可能会表示问号。
- 在执行过程中,会有一些内容不会显示的,例如:回车、换行等效果。
- 为解决此效果,定义了转义符号。这通常使用“\”开头。
- '=单引号 \n=换行
- ‘’=双引号 \f=换页
- \=斜杠 \t=条格
- \r=回车 \b=退格 */
//public class Test11{
// public static void main(String[]args){
// System.out.println("Hello \n World");
// System.out.println("Hello \\n World");
// }
//}
/** 布尔类型
- 使用true和flose来判定逻辑值真假的数据类型==布尔类型
- 所有的关系运算的返回值都是布尔类型。布尔类型也大量应用在控制语句中。*/
/** 数据转换
- java是一种强数据类型语言,所以当遇到不同数据类型同时操作时,就需要进行数据类型转换。
- 数据类型转换要满足一个最基础的要求,那就是数据类型要兼容。
- 例如:将一个布尔类型转换成整数类型是肯定不会成功的。
- 在java中,两个数据类型转换方式,分别是自动类型和强制类型转换
- 1.自动类型转换:
- 自动类型转换要满足数据类型兼容、转换前的数据类型的位数要低于转换后的数据类型*/
//public class Test11{
// public static void main(String[]args){
// short s=3; //定义一个short类型变量
// int i=s; //short自动类型转换为int
// float f=1.0f; //定义一个float类型变量 虽然是自动类型转换,也是要自己定义转换的是什么类型的
// double d1=f; //float自动类型转换为double
// long l =234L; //定义一个long类型变量
// double d2 = l; //long自动类型转换为double
// System.out.println("short自动类型准换成int后的值等于"+i);
// System.out.println("float自动转换为double后的值等于"+d1);
// System.out.println("long自动类型转换为double后的值为"+d2);
// }
//}
/** 可以看出位数低的类型数据可以自动转换成位数高的数据类型。
- 例如:short数据类型的位数为16,就可以自动转换为位数为32的int类型;
- 同样的float数据类型的位数为32,啧可以自动转换为64位的double类型;
- **由于整数类型和浮点类型的数据都是数值,则他们之间也是可以互相转换的,从而有了long类型自动转换成double类型,
- 但需要注意的是,转换后的值相同,但是表示上一定要在后面加上小位数(double是浮点类型),这样才能表示double类型。*/
//注意:整数类型转换成浮点类型值可能会发生变化,这是由浮点类型的本身定义决定的。
//计算机内部是没有浮点数的,浮点数是靠整数模拟就按出来的,不如0.5其实就是1/2,。所以换算过程难免存在误差
//整数类型自动转换为浮点类型的程序。
//public class Test11{
// public static void main(String[]args){
// int l=123456123; //定义一个long类型变量。也可以定义为:l=234L。
// float d=l; //int自动类型转换为double
// System.out.println("int自动类型转换为float后的值等于"+d);
// }
//}
/** 字符类型占16位数据,而且也可以是用Unicode码来表示,因此字符类型也可以自动转换为int类型的,
- 从而还可以自动转换为更高位的long(64)类型,以及浮点类型。*/
//字符类型自动类型转换为int类型的程序
//public class Test11{
// public static void main(String[]args){
// char c1='a'; //char类型是一个单一的16位Unicode字符
// int i1=c1;
// System.out.println("char自动类型转换为int后的值等于"+i1);
// char c2='A';
// int i2=c2+1; //char类型和Int类型计算
// System.out.println("char自动类型和int类型计算后得值等于"+i2);
// }
//}
/自动类型是从低位数转换为高位数/
//强制类型转换
/** 强类型转换可以高位数的数据转低位数的数据。
- 前提条件:转换的数据类型必须兼容。
- 强类型转换的固定语法:(type)value;其中type就是要强制类型转换后的数据*/
//public class Test11{
// public static void main(String[]args){
// int i1=123;
// byte b=(byte)i1;
// System.out.println("int强制转换byte后值等于"+b);
// }
//}
//因为byte的取值范围-128~127,当数值很大的时候,转换可能会在成数据的丢失。
//public class Test11{
// public static void main(String[]args){
// int i1=128;
// byte b=(byte)i1;
// System.out.println("int强制转换byte后值等于"+b);
// double d1=123.2233;
// int i2=(int)d1;
// System.out.println("double强制转换jint后的值等于"+i2);
// }
//}
//double类型强制类型转换成int会将浮点类型强制转换为整数类型。
//public class Test11{
// public static void main(String[]args){
// char c1='A';
// int i=c1+1;
// char c2=(char)i;
// System.out.println("int强制类型转换后为char后的值等于"+c2);
// }
//}
//改该程序中将计算后得到的int类型强制类型转换为char类型,从而得到结果B字(66)。
//得出:在Unicode码中所有的字母都是一次排序的。
//隐含强制类型转换
/** java 中的特殊机制==隐含自动类型转换机制;
- 例如:byte b=123;
-
123的数据类型是int类型,而定义的b变量是byte类型。按之前的理论,这里应该需要进行强制类型转换的;
-
但java提供了这种隐含强制类型转换机制。这样工作不再是程序完成,而是java系统自动完成的。*/
//整数可以。浮点类型不存在这种情况,因为定义float类型是必须在数值后面加上F或者f。
//public class Test11{
// public static void main(String[]args){
// float i1=0.01F;
// double s= i1;
// System.out.println("float转换成short="+s);
// }
//}