1.Java学习方法
软件开发的一种感觉,说是一门技术,还不说是一门艺术。学语言要求的有一种环境,Java 的语法只占10%,而把学到的语法用到现实生活中去,就是把学到的知识点用到实际的项目中区去那是占90%。有人说:语言其实是一门工具,重要的是用到实际生活去。也是有道理的,把生活中的问题用计算机语言解决,就是表达一种思想,主要是表达方式。感觉是培养出来的,那就要不停的去敲代码,当你的代码到5万行时,不会也有感觉,知道怎么做。
注意三点:
1. 理解
2. 练习
3. 思考
除此之外:还要提高自己的水平,思考别的办法、扩展,思考使人进步。
与开发中的是否一致
代码是否能移植
与生活中的例子联系在一起
生活用软件来解决问题
解决方案
2. Java的基本框架
打好基本功,其他都是华丽的包装。
1. 基本语法(基本功)
搭建环境
语言环境
控制语句
数组
2. 核心语法(高级)
面向对象的基本概念
异常
接口与抽象类
集合
3. 提高部分
多线程
网络
图形界面
I/O
工具书:
Core java 核心卷1和2
Java核心技术
参考书:
孙卫琴:面向对象编程
良葛格:java 学习笔记
其他:
面向对象是全新角度去理解现实世界,对现实世界做抽象,复杂的东西——出发点.哲学——现实世界是什么?物质还是精神
面向对象的抽象:数据——类型——类——对象
面向过程的抽象:函数之间的相互调用
3.Java的第一个程序
Java 语言的介绍:
是一种程序语言
是一种开发环境
是一种应用环境
是一种部署环境
Java语言的特点:
简单:Java相当于C++而简单,没有指针的
安全:只有使用指针,不能操作指针
跨平台:高级语言—编码—操作平台代码—OS系统—机器平台代码—Cpu 指令集
跨操作平台代码
源码——编译——UNIX、Linux、Windows系统版本
环境变量的设置:
需要新加的两个环境变量
1、JAVA_HOME:指名JDK的位置。
2、CLASSPATH:指名到哪里去找运行时需要用到的类代码(字
节码)
原有的环境变量
1、 PATH:指名可执行程序的位置。
2、 EXPORT :将指定的环境变量声明为全局的。
我们在.bash_profile下的环境变量设置。
JAVA_HOME=/opt/jdk1.6.0_03
PATH=$PATH:$JAVA_HOME/bin:.
CLASSPATH=.
Export CLASSPATH
Export PATH
Export JAVA_HOME
注: “.”代表当前目录
当我们把环境变量都配置好了以后在终端敲入”java
-version”命令如果出现JDK版本号信息就表示我们环
境变量设置成功了。
Bin目录下放的是一些JDK命令
什么是字节码和虚拟机:
字节码是一套设计用来在Java运行时系统下执行的高度优化的
指令集。该Java运行时系统称为Java虚拟机(JVM)。JVM其实
就是一个字节码解释器。虚拟机将字节码解释成机器码给CPU
执行,所以我们在java中通过虚拟机的这种解释执行方式来屏
蔽底层操作系统的差异。
JRE = JVM+编译器
JDK= JVM+编译器+类库
查看类库源码在:JDK/src.zip压缩包里
我们的第一个Java程序
package day01;
/**
* 1.这是第一个类:里面有包:package day01;
* 2.public类的类名和Java的名称相同
* 3.有且只有一个main方法,而main方法的签名是固定的,是程序的入口方法
*/
public class MyFirstJava {
public static void main(String[] args) {
String name="core java";
int age=567;
System.out.println("my name is : "+name);
System.out.println("my age is :"+age);
}
}
注:
1、我们要求类名必须和文件名一致,只不过文件名多了个.java
的后坠。
2、main函数是我们整个程序的执行入口所以必须是静态公开
的。
编译:
Javac MyFirstJava.java –d .
编译后我们可以看到目录下多了一个MyFirstJava.class
文件。这就是Java编译原文件后生成的字节码文件。
执行:
Java day01.MyFirstJava
将字节码文件交给JVM去解释执行。
思考:
1、为什么编译后不生成可执行文件(注:所有的可执
行文件都是机器代码)
2、Java的跨平台特性(SUM口号 :一次编译到处运行);
包结构
为了根据需要将不同的原文件放在不同的目录下我们引入了
包。包我们可以看作就是一个存放java原文件的目录。
在源码的基础上声明一个包名:package baidu;
加包后我们用“javac –d . MyFirstJava.java”编译后生成的
字节码文件就会放在我们指定的包(目录)结构下.
如果我们想指定多级目录那么在目录明之间我们可以用.作
为分隔符.
例如:com.bai.vo
CoreJava中的注释
1、//单行注释
2、/* */多行注释
3、/** */文档注释
文档注释可以由java doc命令单独提取出来生成注释文档。
例:javadoc MyFirstJava.java –d ./docs
我们在生成的注释文件中可以打开index入口页面来查看我们
刚刚生成的注释文档。
文档注释一般写在类、方法、属性定义之前
前两种注释和C++相同。
注意:1、我们可以用javadoc –help命令来查看该命令的其他
用法。
2、同样我们可以用“javadoc –d 路径名 *.java”来指
定生成文档注释的位置。
3、可以在文档注释中加入HTML标签来控制生成注释
文档的显示格式。
Jar命令的用法
我们可以用“jar –cvf m n”命令来将文件打包成jar压缩包。
m: 要生成jar包的名字
n: 要压缩文件的文件名(可以是多个文件或一个目录)
生成的jar文件实际上就是一个普通的zip压缩文件
顺便说一下解包的命令:unzip *.jar
计算机运行一个java程序的过程
1、 启动JVM
2. 装载类
搜索当前所在包下的下载
通过JAVA_HOME\jre\lib目录下找到对应的类
如果的2不找不到则在环境变量中配置的CLASSPATH配置
3. 运行Main方法
的路径中找类,这就是为什么我们要在CLASSPATH中配上
当前路径的原因。
import声明的作用
当我们要用一个JDK定义好的类时我们需要在Java程序中配上该
类对应的jar包。(类似于C++中了#include预处理指令)
例:import java.util.*;
这里大家注意一点:由于java.lang.*包中的类是我们编程中经常要
使用的,所以这个包下的类我们不用特别用import在程序中声明。
但当我们要用到其他包中的类似我们就必须用import声明了。
awt:抽象窗口工具.
如果大家想了解什么包做什么用的话大家课以看看我给大家的
API 文档,上面有对所有这些包用法的解释。
package day01;
/**
*一个Java源代码文件有多个类,但有且只有一个public 类与类名相同
*/
public class DoubleClass {
public static void main(String[] args) {
System.out.println("我是一个多类的方法!");
}
}
class DoubleOne{
}
class DoubleTwo{
}