标签:
Java的核心优势:跨平台
JDK:Java开发工具包 JRE:Java运行时环境 JVM:Java虚拟机 JDK包含JRE,JRE包含JVM
Java_HOME:JDK安装目录 path:执行dos命令时,系统会在path指定目录寻找该命令对应的可执行文件,“#Java_HOME#\bin”放到目录中,不同路径用分号隔开 classpath:JDK 5.0以上版本不需要设置
DOS命令:dir查看标签目录
Java语言严格区分大小写,并且Java程序中所有的关键字都是小写。
main方法是程序的入口
args是arguments(参数)的缩写
注释:多行注释不行嵌套
Java程序是纯粹的面向对象的程序设计语言,因此Java程序必须以类(class)的形式存在,类是Java程序最小的程序单元。Java程序不允许可执行性语句、方法等成分独立存在,所有的程序部分都必须放在类定义里。
1、标识符必须以字母、下划线、美元符$开头;不能包含其他@、%等其他特殊字符
2、标识符其他部分可以是字母、下划线、美元符和数字任意组合,其中数字不能打头;
3、Java标识符大小写敏感,且长度无限制,标识符不能包含空格;Java中的空格包含空格符(space)、制表符(Tab)、回车(Enter)等
4、不可以是Java关键字和保留字;
注:Java不采用通常语言使用的ASCII字符集,而是采用unicode这样的标准国际字符集。因此,这里的字母的含义、英文、汉字等等(不建议使用汉字来定义标识符)
1、源文件后缀必须是.java
2、通常情况下源文件的主文件名是任意的,但是如果Java源文件定义了一个public类,源文件的主文件名必须和public类名相同
所以一个Java源文件只能定义一个public类。
Java语言是强类型语言,强类型语言包含两方面含义:1、所有的变量必须先声明,后使用;2、指定类型的变量只能接受类型与之匹配的值。这意味着每个变量和每个表达式都有在编译时就确定的类型。
强类型语言可以在编译时进行更严格的语法检查,从而减少编程错误。
声明变量很简单,指定变量类型和变量名就可以。(定义变量时,即可指定初始值,也可不指定初始值,不管是什么变量,至少要指定变量类型和变量名两部分)
Java语言支持的类型分为两类:基本类型和引用类型。
引用类型包括类、接口和数组类型。还有一种特殊的null类型。所谓引用类型就是对一个对象的引用,对象包括实例和数组两种
基本类型包括布尔类型和数值类型。数值类型有整数类型和浮点类型。
整数类型包括:
1、byte:一个byte类型的整数在内存中占8位(一个字节),表数范围-128(-27)—127(27 -1);
2、short:一个short类型整数在内存里占16位(2个字节),表数范围-32768(-215)—32767(215-1);
3、int:一个int类型整数在内存里占32位(4个字节),表数范围(-231)—(231-1);
4、long:一个long类型整数在内存中占64位(8个字节),表数范围(-263)—(263-1);
int是最常用的整数类型,在通常情况下直接给出一个整数值默认是int类型。除非:1、直接将一个较小的整数值直接赋给一个byte或short变量,系统会自动当做这个类型处理;
2、如果用一个巨大的整数值,超出int表数范围,系统不会自动把这个整数值当成long类型处理,应该在数值后加l或者L。为了避免与数字1混淆,建议使用大写L。
public class Test{ public static void main(String[] args){ //编译出错,提示过大整数 //long l = 300000000000 //可正常编译 long l = 300000000000L; System.out.println(l); } }
字符型char实际也是一种整数类型,相当于无符号整数类型。
浮点型包括float和double
double占8个字节,64位;float占4个字节,32位。
只有浮点数类型才能使用科学计数法表示。
浮点数类型默认double类型,如果希望Java把一个浮点数类型当做float类型处理,应该在这个浮点数类型值后紧跟f或F。
Java还提供了三个特殊的浮点数值:正无穷大、负无穷大和非数,用于表示溢出或出错。正无穷大通过Double或者Float类的POSITIVE_INFINITY表示,负无穷大通过Double或Float类的NEGATIVE_INFINITY表示,非数通过Double或Float类的NaN表示。所有正无穷大数值相等,负无穷大数值相等,非数不与任何数值相等,甚至和NaN都不相等。
浮点数有误差,如果需要精确一个浮点数,可以使用BigDecimal类。
只有浮点数除以0才可以得到正无穷大或负无穷大,因为Java语言会自动把和浮点数运算的0(整数)当成0.0(浮点数)处理。如果一个整数除以0,抛出异常:AirthmeticException:/by zero(除以0异常)。
布尔型
布尔型只有一个boolean类型,用于表示逻辑上的“真”或“假”,boolean类型的数值只能是true或flase,不能用0或非0代表,其他数值类型不能转换成布尔类型。
字符串“true”和“false”不会直接转换成布尔类型,但如果使用一个布尔类型的值和字符串进行连接运算,则布尔类型的值会自动转换成字符串。
public class Test{ public static void main(String[] args){ boolean b = false; if(b = true){ //这里重新赋值true给b,所以会一直成立 System.out.println("hehe"); } } }
char字符型
字符型有三种表示形式:
1、直接通过单个字符指定字符型值;
2、通过转移字符表示特殊字符型;如果需要输出一个引号,如果嵌套无法编译,使用转移字符就可以
public class Test{ public static void main(String[] args){ //转义字符\输出引号 char c1 = ‘\‘‘; System.out.println(c1); } }
3、直接通过Unicode值来表示字符型值; 单个字符、单个字符、单个字符,重要的事说三遍
public class Test{ public static void main(String[] args){ //char是单个字符,下面这句无法编译,提示未结束的字符文字 //char a = ‘ggsag‘; char c1 = ‘a‘; char c2 = ‘b‘; //输出a System.out.println(c1); //输出195 System.out.println(c1 + c2); } }
public class Test{ public static void main(String[] args){ char c1 = ‘a‘; System.out.println(c1); //每个字符都有对应的数字,输出97 int i = c1; System.out.println(i); //把int类型强制转换成char类型 char c2 = (char)i; System.out.println(c2); } }
不管是整型数值还是浮点型数值,都可以自由使用下画线,通过下画线更直接看出包含多少位
/* 数值中使用下画线分割 */ public class Test{ public static void main(String[] args){ long l = 3000_0000_0000L; long a = 4111_1111_1111L; System.out.println(l + a); //输出:711111111111 } }
for循环从a打印到z
public class Test{ public static void main(String[] args){ char c1 = ‘a‘; for(int i = 0; i < 26; i++){ char temp = (char)(c1 + i); System.out.println(temp); } } }
有两种转型方式:自动类型转换和强制类型转换
int类型转换为float,long类型转换为float和double类型,可以自动转换,但是可能会造成精度的损失。
Java所有的数据型变量可以相互转换,如果系统把某种基本类型的值直接赋给另一种基本数据类型的变量,这种方式成为自动类型转换。当把一个表数范围小的数值或变量赋给另一个表数范围大的变量时,系统会自动类型转换,否则就需要强制转换。
//如果希望把基本数据类型的值转换为对应的字符串时,可以把基本数据类型的值和一个空字符进行连接 System.out.println(4 + 4 + "Hello"); //输出4Hello System.out.println("Hello" + 4 + 4); //输出Hello44
通常情况下,字符串不能直接转换为基本类型,但通过基本类型对应的的包装类可以实现把字符串转换成基本类型
public class StringTest{ public static void main(String[] args){ String str = "35"; int i = Integer.parseInt(str); System.out.println(i); } }
Java为8中基本数据类型提供了对应的包装类:boolean—Boolean;byte—Byte;short—Short;int—Integer;long—Long;char—Character;float—Float;double—Double,8个包装类都提供了一个parseXxx(String str)静态方法用于将字符串转换为基本类型。
当一个算术表达式包含多个基本类型的值时,整个算术表达式数据类型会发生自动提升,规则如下:
1、所有byte类型、short类型、char类型将被提升为int类型;
2、整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型。
int a = 3; int b = 23/a; //23除3不能除尽,但是依然得到一个int类型整数 //得到结果为把小数部分截断取整后的整数
如果表达式中包含字符串,则:
//输出Helloa7 System.out.println("Hello" + ‘ a ‘ + 7); //输出104Hello System.out.println(7 + ‘ a ‘ + "Hello");
直接量是指在程序中通过源代码给出的值。
能指定直接量的三种类型:基本类型、字符串类型和null类型。Java支持8中类型的直接量:int、long、float、double、boolean、char、String、null
Stirng类型的直接量不能赋值给其他类型的变量,null类型的直接量可以直接赋值给任何引用类型的变量。
常量池:在编译期被确定,并被保存在已编译的.class文件中的一些数据,包括类、方法、接口中的常量,也包括字符串直接量。
//Java会确保每个字符串常量只有一个,不会产生多个副本 String s0 = "Hello"; String s1 = "Hello"; String s2 = "He" + "llo"; System.out.println(s0 == s1); System.out.println(s1 == s2); //上面两行都将输出true
三木运算符只有一个: ?:
String str = 5 > 3 ? "5大于3" : “5不大于3”;
System.out.println(str);
三目运算符可以被嵌套
a > b ? "a大于b" : (a < b ? "a小于b" : "a等于b")
标签:
原文地址:http://www.cnblogs.com/changzuidaerguai/p/5648662.html