最近在从零开始学Java,浅浅整理一下笔记。接下来会更的一系列帖子也是我由浅入深逐渐理解一门语言的过程,会按照我个人的逻辑,错误和疏漏在所难免,发在博客上,供需要的人取用、翻阅。
Java的一些特色
简单
- 与C或C++接近,但省略了一些容易混淆的概念,更加通俗易懂。
- 不使用指针,而是引用。
- 提供了自动分配和回收内存空间的便利。
平台无关
具体原理如图:
- 源文件扩展名为.java。
- 字节码扩展名为.class,是体系结构中立的,被java解释器翻译为不同系统/处理器各自的指令,然后执行。
面向对象
分布式
多线程
动态
(个人认为最后的三个概念对于初学者来说在理解上有困难,需要学到一定的程度才能够真正地理解运用,故不做记录)
Java的三种平台
- JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
- JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
- JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)
Java源文件的架构
- 由若干个相互独立的类组成,且一个源文件中最多只能有一个是public类;
- 一个源文件中必须有一个类名与源文件名称相同,该类称为主类;
- 若源文件中有public类,那么它必须为主类,即必须与源文件名称相同;
- 某一个源文件的主类中须含有函数public static void main(String args[]),该函数称为主函数;
- 可以由多个java文件(即源文件)集成。
一些工具
- 编译器(javac),编译.java文件
- 解释器(java)
- 反编译器(javap),处理.class文件
示例1
main.java
public class main {
public static void main (String args[]) {
System.out.println("大家好!");
System.out.println("Nice to meet you");
Student stu = new Student();
stu.speak("We are students");
}
}
class Student {
public void speak(String s) {
System.out.println(s);
}
}
运行结果:
示例2
main.java
public class main {
public static void main (String args[]) {
System.out.println("大家好!");
System.out.println("Nice to meet you");
Student stu = new Student();
stu.speak("We are students");
}
}
Student.java
public class Student {
public void speak(String s) {
System.out.println(s);
}
}
运行结果:
- 结果是完全相同的。
- 在尝试示例2的过程中,我将Student.java里主类的public关键字删去了,结果运行结果没有受到影响。这说明即便Student类不声明为public,也可以被main.java所访问。
- 那么,public关键字的作用是什么呢?
- 查阅资料得知:
- 每个编译单元(文件)都只能有一个public类,这表示,每个编译单元都有单一的公共接口,用public类来表现。
- 被public修饰的类可以被其他包访问。
- 那么,“包”又是什么呢?
包(package)的作用
- 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
- 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
- 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
编程风格
Allmans风格
又称“独行”风格,即左、右大括号分别独占一行。
class Allmans
{
public static void main(String args[])
{
int sum=0,i=0,j=0;
for(i=1;i<=100;i++)
{
sum=sum+i;
}
System.out.println(sum);
}
}
Kernighan风格
左大括号在上一行的行尾,右大括号独占一行。
class Kernighan {
public static void main(String args[]) {
int sum=0,i=0,j=0;
for(i=1;i<=100;i++) {
sum=sum+i;
}
System.out.println(sum);
}
}
注释
- java中单行注释、多行注释格式均与C++格式相同。
- 注释不能嵌套。