java基本小知识
一.java的第一个程序(错误是提高的阶梯,永远不要把错误当错误,不犯错,不可能成长!)
public class Helloworld { public static void main(String args[]){ System.out.println("hello java"); } }
注:String args[] 与 String[] args 都可以执行,但推荐使用 String[] args,这样可以避免歧义和误读。
二:java体系及基本定义
跨平台是java语言的核心优势赶上了互联网的发展,随着互联网的发展,建立了强大的生态体系,目前已覆盖了IT各个行业。
Java分为三个体系:
- JavaSE(J2SE) 定位在个人计算机上的应用(Java2 Platform Standard Edition,java平台标准版)
- JavaEE(J2EE) 定义在服务器端的应用 (主流)(Java 2 Platform,Enterprise Edition,java平台企业版)
- JavaME(J2ME) 定位在消费性电子产品的应用(越来越少) (Java 2 Platform Micro Edition,java平台微型版)。
2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名以取消其中的数字”2″:J2EE更名为Java EE, J2SE更名为Java SE,J2ME更名为Java ME。
java的特性和优势:
跨平台/可移植性(java的int 永远都是32位,c++可能是16,32,根据编译器而变化)
安全性:有字节码校验器
简单性:在c++上去掉头文件、指针运算、结构、联合、操作符重载等。入门简单,难于后面的架构、协作
高性能:通过虚拟机的优化提升效率
分布式、多线程:更好的相应和实时
健壮性:不可能造成整个计算机崩溃,程序有误,可抛出异常,再通过异常处理机制加以处理。
java应用程序的运行机制:
计算机高级语言的类型主要有编译型(c++ c)和解释型(php python)两种,java是两种类型的结合(在运行过程中,既有编译的过程也有解释的过程)。
如果是编译型语言,如C,程序写好之后,直接与操作系统挂钩。
java利用文本编译器写成java源程序,后缀为 .java,再利用编译器(javac)编译成字节码文件,后缀为 .class,最后利用虚拟机解释执行。(java通过JRE与操作系统联系,是跨平台的核心机制)
JVM、JDK、JRE的区别
JVM(Java Virtual Machine):是一个虚拟机用于执行字节码的“虚拟计算机”,与操作系统联系
JRE(Java Runtime Enviornment) :包含Java虚拟机、库函数、运行Java应用程序锁必须的文件
JDK(Java Development Kit):java开发包,包含JRE,以及增加编译器和调试器等用于程序开发的文件。
关系:JDK包含JRE 以及SUN公司oracle(甲骨文公司)开发了很多可以直接用的,也非常好用的类库(String),JRE包含JVM。
一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。
下面简要介绍下类、对象、方法和实例变量的概念。
- 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种; 行为有:摇尾巴、叫、吃等。
- 类:类是一个模板,它描述一类对象的行为和状态。
- 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
- 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
补充 ♥:标识符及其使用规范(数字不能开头)
标识符是用来给变量、类、方法及包命名的,如:Welcome、main、System、age等,需要遵守一些规则:
•必须以字母、下划线、美元符号$开头;
•其他部分可以是字母、下划线”_” 、美元符”$”和数字的任意组合。
•Java标识符大小敏感,且长度无限制。
•标识符不可以是java的关键字。
•表示类名的标识符:每个单词的首字母大写,如:GoodMan
•表示方法和变量的标识符:第一个单词小写,第二个单词开始首字母大写,“驼峰原则”,如:eatFood( )
java采用Unicode 标准的国际字符集,不仅是英文,还包含汉字等。
测试实例:(对于初学者来说,再简单的代码也要敲出来!)
变量:本质上代表一个“可操作的存储空间”,空间位置是确定的,但是里面的值不确定。
相当于停车场里的“车位”,里面的车不一样(值),车位的大小(存值大小)也不一样,所以要先声明变量的名称(车的类型:大货车、小轿车)及数据类型(eg:double)。不同的数据类型在内存中分配不同的空间,如double何long有8个字节,int类型有4个字节;一个字节(byte) 有8位(bit)组成。java中每个变量都必须先声明其数据类型,变量的数据类型决定其存储空间的大小。变量作为程序中最基本的存储单元,要素包括变量名,变量类型及作用域。可以在一行中声明多个变量,如:int i,j;但是不建议,逐一声明每一个变量可以提高程序的可读性。变量声明并初始化之后才可以使用。
变量分为:局部变量、成员变量、静态变量
局部变量(local variable):方法或语句内部定义的变量。在使用前必须先声明、后使用。 如:int i; int j=i+6; 会报错,未初始化i;
成员变量(实例变量member variable) :方法外部,类的内部定义的变量。生命周期伴随对象始终。如果不自行初始化,会自动初始化成该类型的默认值。
int | 0 |
double | 0.0 |
char | ’\u0000\’ |
boolean | false |
静态变量(类变量static variable):使用static 定义,从属于类,生命周期随类始终。
常量(constant) :主要是利用关键字final来定义一个变量,常量一旦被初始化后不会再改变。被final修饰的称为符号常量。
被final修饰后,不能被修改
常量的赋值:大写字母和下划线 如:MAX_VALUE
final double PI=3.14;
java中定义了3类8种基本数据类型
数值型:byte(1个字节) 、short (2个字节)、int (4个)、long(8个)、float (4个)、double(8个)
字符型:char
布尔型:boolean
数值型:
整数型:举例:byte:1个字节=8位, 28=256,因为可以表示负数,所以拿出一位表示符号-128,中间有0,所以是+127。
java语言整型常量的四种表示形式
十进制整数,如:99,-55
八进制整数,要求以0开头,如:015
十六进制整数,要求以0x或0X开头,如:0x15
二进制数,要求以0b开头,如:0b1101
测试整型的输出:
java语言的整型常数默认为int型,声明long型常量可以后加\’l\’或\’L\’。
浮点数:带小数的数据在java中称浮点型,可分为float类型和double类型
float类型被称做单精度类型,尾数可以精确到7位有效数字。double类型的数值精度约是float类型的两倍,被称做双精度类型。浮点型常量的默认类型为double。
浮点类型常量的两种表现类型
十进制形式,如:3.14 0.314
科学计数法形式,如:314e2(314*102) 314E2 314E-2(314*e-2)
注意:浮点数不精确,一定不要用于比较
如果想比较两个数,用java.math包下面的两个类,BigInteger(任意精度的整数运算) 和BigDecimal(任意精度的浮点数运算),这两个类可以处理任意长度的数值。
字符型变量:在内存中占两个字节,在java中使用单引号表示字符常量。如\’A\’是一个字符与”A”是不同的,”A”代表一个字符的字符串。
Uniclde编码通常从\’\u0000\’到\’\uFFFF\’之间的十六进制值来表示。还允许用转义符\’\\’将其后的字符转变为其他含义。
char用来表示字符,String用来定义字符,用双引号。
boolean类型:有两个变量值,在内存中占一位(不是一个字节),boolean用来判断逻辑条件,一般用于程序流程控制。