1 //源程序 Hello.java 2 public class Hello 3 { 4 static String str ="Hello World"; 5 public static void main(String args[]) 6 { 7 System.out.println(str); 8 } 9 }
通过这个一个简单的方法可以看到一些JAVA的基本结构。(这些是借鉴前辈们的一些理解做下记录)
1、在java中一切都是对象,数据和函数必须封装在‘类’中。一个源文件至少包含一个类(Hello)才可以编译并执行。
2、用关键字class来声明一个类,本例中类名是Hello,源程序文件名必须和类同名,即用Hello.java存盘。
3、java语言是大小写敏感的,按惯例,类名用大写字母开头,变量、方法和对象实例名用小写开头。
4、类声明语句后面的{.............} 内的语法成为类体,他可以包括若干数据变量和函数。
5、在java中,数据变量被成为类的“成员变量”,或简称成员;函数在java中叫做类的“成员方法”:
a、本例中类Hello包括一个成员变量str和一个成员方法main;
b、成员str是一个string类对象;
6、应用程序Application主类中必须包含main()方法:
a、main方法前的修饰符一次表示该方法是公共的(public)、静态的(static)、无返回值的(void)。main方法必须用这三个修饰符;
b、java程序中可以定义多个类,每个类可以定义多个方法,但是一个.JAVA 文件,最多只有一个公共类(public),main()方法也只能有一个,作为程序的入口,可调用其他成员方法。
c、main()方法定义中的,括号()中的String args[] 是传递给main()方法的参数,参数名为args,它是类 String的一个对象,参数可以为0个或者多个。
7、main()方法中只有以一条语句System.out.println(str),功能是在标准输出设备(屏幕)上输出字符串str。
8、每条语句有分号结束;类体、方法和语句块用花括号;
(下面是自己简单结合eclipse对java工程管理的一些理解,随便写的。。很不规范,后续会在做详细的配图补充)
用eclipse新建一个工程后,在一个包里面的多个类,编译生成的 .class 文件在同一个文件夹里面。
class文件目录 C:\Users\qq\Desktop\rr\test\bin\test
java文件 目录 C:\Users\qq\Desktop\rr\test\src\test
每一个包,会单独生成一个文件夹。每个包里面的所有的类,都会在该包所在的文件夹的目录下。
目前理解的程序内上下级关系是:工程->源代码文件、各类标准库->各种包(package)->各种带有主函数的类名->细分的一些类
文件目录是 程序文件夹->bin文件夹(放的是按包来区分的文件夹->每个包里面的类生成的class文件,同一个包里面不允许有相同类名出现)、src文件夹(放的是按包来区分的文件夹->每个包里面类的java文件,即源代码)
基本数据类型:
在JAVA中一共有八种基本数据类型
byte、short、int、long、float、double、char、boolean
整型
其中byte、short、int、long都是表示整数的,只不过他们的取值范围不一样
byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)
short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)
int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1)
long的取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1)
浮点型
float和double是表示浮点型的数据类型,他们之间的区别在于他们的精确度不同
float 3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)占用4个字节
double 1.797693e+308~ 4.9000000e-324 占用8个字节
boolean型(布尔型)
这个类型只有两个值,true和false(真和非真)
boolean t = true;
boolean f = false;
char型(文本型)
用于存放字符的数据类型,占用2个字节,采用unicode编码,它的前128字节编码与ASCII兼容
字符的存储范围在\u0000~\uFFFF,在定义字符型的数据时候要注意加‘ ‘,比如 ‘1‘表示字符‘1‘而不是数值1,
数据类型转换:
容量小的类型可以自动转到容量大的数据类型
byte->short->int->long->float->double
容量大的类型转容量小的类型时需要强制转换,并且会丢失数据精准度,有两种方法(尽量使用第二种方法转换);
① double a = 1.2; int b = (int)a;
② double a = 1.2; int b = (new Double(a)).intValue();