Java学习笔记 之 基本概念

一、       基本介绍及环境搭建

1 、 Java 的特点

       Java tutorils 是这么描述的

The Java programming language is a high-level language that can be characterized by all of the following buzzwords:

  • Simple
  • Object oriented
  • Distributed
  • Multithreaded
  • Dynamic
  • Architecture neutral
  • Portable
  • High performance
  • Robust
  • Secure

1.  Simple 简单的: java 里面去掉了 C++ 里面的对指针的操作,引用里面也保存了指针的地址,相对 C++ 中的指针弱化了,垃圾系统自动处理; C++ 中的垃圾要自己去 destroy ,这一点 java 虚拟机会自动去收集垃圾

2.  Object oriented 面向对象的: java 是一门完全面向对象的语言,不支持 C 语言中面向过程的编程。

3.  Distributed 分布式的: java 中包含了一个支持 HTTP FTP 等基于 TCP/IP 协议的子库, java 应用程序通过 URL 打开网络上得资源和访问本地资源一样方便快捷,为分布式的环境提供了先天的优势。

4.  Multithread 多线程的: java 提供的多线程可以允许程序同时执行几个任务,这样就会有更好的交互性,在用户体验上要比单线程好

5.  Dynamic 动态的:动态特性是其面向对象设计方法的发展,允许程序动态的载入运行过程中所需要的类,这是 C++ 语言在面向对象的程序设计中无法实现的。

6.  Architecture neutral 结构中立的: java 的目的是支持到部署到异构的网络环境。在这样的环境下,应用程序必须保证在各种平台上运行,在不同的硬件平台上必须支持不同的操作系统,并能与多种语言相互操作。为了适应环境的多样性, java 编译器为我们生成结构中立的字节码文件。 Class

7.  Portable 便携的:

8.  High performance 高性能:性能始终是一个被考虑的因素, java 平台实现的优越的性能,虚拟机直接将字节码翻译成机器码。

9.  Robust 健壮的: java 检查系统在编译和运行时的异常,类型检查使很多错误能够早期发现,摒弃了指针操作,减少了内存操作的可能性。

10.              Secure 安全的:提供了广泛的编译时检查 运行时检查,引导程序员养成良好的变成习惯。内存管理方式非常简单

2 、 Jdk/jre/jvm

jdk:java developer’s kit ( java 开发工具包)包含了 jre

jre : java runtime environment ( java 运行环境)能够运行 java 环境所需要得环境,一般服务器安装 jre 就可以了,无需 jdk 。 Jre 中包含了 jvm

jvm : java virtual machine ( java 虚拟机)

3 、 javase/javame/javaee

javase :java 标准平台, javaee 基础内容

javame : java 嵌入式平台

javaee : java 企业级平台

4 、安装开发环境

1. 下载 jdk http://www.oracle.com/technetwork/java/javase/downloads/index.html

2. 傻瓜式安装

3. 环境变量配置

       Windows 环境下:我的电脑右键属性高级环境变量,新建

       JAVA_HOME:jdk 安装目录

       CLASSPATH:.

       PATH:$JAVA_HOME/bin

配置完成后在 CMD 中敲 javac 试一下看有没有成功

5 、第一个 java 程序

用记事本新建一文件 文件名为 MyFirstApp.java

手动敲入如下代码

public class MyFirstApp {// 注意必须和文件名一致

       public static void main(String[] args){

              System.out.println("hello world");

       }

}

编译:打开 cmd 窗口进入 myFirstApp.java 所在的文件夹

命令: javac MyFirstApp.java

如果没有任何东西输出则编译通过

会在同一个目录下生成一个 MyFirstApp.class 文件

执行: java MyFirstApp 注意后面没有扩展名,如果看见 hello world 在正常

 

说明

main 方法为 java 入口方法类似 BCB 中的 WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

一个类中最多只有一个 main 方法

同一个文件中可以写多个类,但只能有一个是 public 的

例如:

public class MyFirstApp

{

              public static void main(String[] args){

                     String name="zhangsan";

                     new Second();// 实例化 Second

                     System.out.println("hello world:"+name);//+ 字符串连接

       }

}

class Second

{

       public Second(){

              System.out.println("second");

       }

} 编译后会多了一个 class 文件,说明一个类就会有一个 class 文件

 

Java 命令执行的过程:

1 、启动 jvm ; 2 、找所需要的 class 文件 3 、加载字节码文件到内存中 4 、找类的 main 方法

二、 java 基本概念

1 、包 工程过大,用来管理庞大的类文件,一般把类似的类放在一个包中

       语法: package 包名 位于 java 文件的最上面

       编译时注意要 javac –d MyFirstApp.java 这是会按照包名生成相应的路径文件夹

       运行时注意 要用 java 包名 + 类名

如果在 java 文件中用到了别的包中的类,这是我们需要用 import 关键字引进来,一般放在 package 下面

2 、 jar 命令

       把制定的 class 打为 jar

       jar cvf abc.jar dir

这样会把 dir 下面的内容打在名称为 abc.jar 的包中

如果在别的项目中想引用这个 jar ,在 classpath 中添加此 jar 文件即可

Jvm 查找类的顺序一般为 1 、当前目录 2 、 $JAVA_HOME/jre/lib/rt.jar 这也是我们不用把 rt.jar 配置在环境变量的原因 3 、 classpath 配置

3 、注释

       1 、单行注释 //

       2 、多行注释 /*  */

       3 、文档注释 /** */ 可以生成 html 帮助文档 javadoc a.java –d .\doc

4 、 jdk 基本包

       Java.lang 使用时不用引入

       java.awt javax.swing javax.awt.event// 图形界面包

       java.io javax.nio// 文件流

       java.net// 网络包

       java.util// 工具包

5 、编码习惯

       类、接口的首字符大写,如果由多个单词组成,各单词的首字母大写

       方法名、变量名首字母小写,多个单词首单词字母小写其余单词首字母大写

       常量名全部大写如果多个单词要用 _ 分割

       包名全部小写

标识符由字母 下划线 $ 数字组成,不能由数字开头 ( 这是语法 )

6 、基本数据类型

       boolean byte short char int doube long float

注意 String 不是基本数据类型

Java 中从低字节向高字节类型自动转换

       byte ->short ->int-> long-> float ->double

逆向过程需要强制转换但是精度会丢失

经典的类型提升的例子

public class ByteInt

{

       public static void main(String[] args){

              byte b=1;

              b++;

              System.out.println(b);

       }

}

public class ByteInt

{

       public static void main(String[] args){

              byte b=1;

              b=b+1;

              System.out.println(b);

       }

}

第二个则编译不通过

7 、数据类型分类

       1 基本类型 2 、引用类型 3 、 void 类型

引用类型存储的是对象在内存中的地址,栈负责给方法分配空间 堆负责给对象分配空间,如果一个引用不指向任何一个对象就会报空指针异常

8 、垃圾回收

如果一个对象没有任何的引用指向他,他就是一垃圾;

Jvm 虚拟机会自动释放它,如果 jvm 不能及时释放你可以用 System.gc() 提醒释放

8 、运算符 ( 略 )

posted @ 2011-11-16 08:52  Devil_jim  阅读(179)  评论(0编辑  收藏  举报