发布日期:2023-03-31来源:武汉北大青鸟武汉校区作者:武汉宏鹏
Java基础完整笔记-武汉北大青鸟光谷校区java学习笔记整理。
Day 01
一、 从面向过程编程到面向对象编程的思维转变
我们知道所有的计算机程序都是由两类元素组成:代码和数据。此外从概念上将讲,程序还可以以他的代码或是数据为核心进行组织编写。也就是说一些程序围绕“正在发生什么编写“,而另一些程序则围绕”谁将被影响“编写。这两种范型决定程序的构建方法。种方法被称为面向过程的模型,用他编写的程序都具有线性执行的特点。面向过程的模型可以认为是代码作用于数据,用C写的程序就是典型的面向过程模型。第二种方法也就是我们现在正在学习的面向对象编程,面向对象编程围绕她的数据(即对象)和为这个数据严格定义的接口来组织程序。面向对象的程序实际上就是用数据控制对代码的访问。CoreJava就是一门纯面向对象编程的语言。
二、 什么是字节码和虚拟机:
字节码是一套设计用来在Java运行时系统下执行的高度优化的指令集。该Java运行时系统称为Java虚拟机(JVM)。JVM其实就是一个字节码解释器。虚拟机将字节码解释成机器码给CPU执行,所以我们在java中通过虚拟机的这种解释执行方式来屏蔽底层操作系统的差异。
JRE = JVM+编译器
JDK= JVM+编译器+类库
三、 环境变量的设置:
需要新加的两个环境变量
1、JAVA_HOME:指名JDK的位置。
2、CLASSPATH:指名到哪里去找运行时需要用到的类代码(字节码)
原有的环境变量
1、 PATH:指名可执行程序的位置。
2、 EXPORT :将指定的环境变量声明为局的。
我们在.bash_profile下的环境变量设置。
JAVA_HOME=/opt/jdk1.5
CLASSPATH=.
PATH=$PATH:$JAVA_HOME/bin:.
注: “.”代表当前目录
当我们把环境变量都配置好了以后在终端敲入”java -version”命令如果出现JDK版本号信息就表示我们环境变量设置成功了。
Bin目录下放的是一些JDK命令
四、 kate工具的使用
这个就不多做描述了,大家多试试就清楚了
五、 我们的个Java程序
public class MyFirstJava{
public static void main(String[] args){
System.out.println(“Hello World”);
}
}
注:
1、我们要求类名必须和文件名一致,只不过文件名多了个.java的后坠。
2、main函数是我们整个程序的执行入口所以必须是静态公开的。
编译:javac MyFirstJava.java
编译后我们可以看到目录下多了一个MyFirstJava.class文件。这就是Java编译原文件后生成的字节码文件。
执行:java MyFirstJava
将字节码文件交给JVM去解释执行。
思考:
1、为什么编译后不生成可执行文件(注:所有的可执行文件都是机器代码)
2、Java的跨平台特性(SUN口号 :一次编译到处运行);
六、 包结构
为了根据需要将不同的原文件放在不同的目录下我们引入了包。包我们可以看作就是一个存放java原文件的目录。
在源码的基础上声明一个包名:package sd0604
加包后我们用“javac MyFirstJava.java –d .”编译后生成的字节码文件就会放在我们指定的包(目录)结构下.
如果我们想指定多级目录那么在目录明之间我们可以用.作为分隔符。
例如:package sd0604.najing.xuanwu
七、 CoreJava中的注释
1、//单行注释
2、/* */多行注释
3、/** */文档注释
文档注释可以由java doc命令单独提取出来生成注释文档。
例:javadoc MyFirstJava.java
我们在生成的注释文件中可以打开index入口页面来查看我们刚刚生成的注释文档。
文档注释一般写在类、方法、属性定义之前
前两种注释和C++相同。
注意:1、我们可以用javadoc –help命令来查看该命令的其他用法。
2、同样我们可以用“javadoc –d 路径名”来指定生成文档注释的位置。
3、可以在文档注释中加入HTML标签来控制生成注释文档的显示格式。
八、 jar命令的用法
我们可以用“jar –cvf m n”命令来将文件打包成jar压缩包。
m: 要生成jar包的名字
n: 要压缩文件的文件名(可以是多个文件或一个目录)
生成的jar文件实际上就是一个普通的zip压缩文件
九、计算机编译一个java程序的过程
1、 启动JVM
2、 通过JAVA_HOME/jre/lib目录下找到对应的类
3、 如果的2不找不到则在环境变量中配置的CLASSPATH配置的路径中找类,这就是为什么我们要在CLASSPATH中配上当前路径的原因。
十、import声明的作用
当我们要用一个JDK定义好的类时我们需要在Java程序中配上该类对应的jar包。(类似于C++中了#include预处理指令)
例:import java.util.*;
这里大家注意一点:由于java.lang.*包中的类是我们编程中经常要使用的,所以这个包下的类我们不用特别用import在程序中声明。但当我们要用到其他包中的类似我们就必须用import声明了。
awt:抽象窗口工具.
如果大家想了解什么包做什么用的话大家课以看看我给大家的API 文档,上面有对所有这些包用法的解释。
十一、java中的垃圾回收器
因为有了垃圾回收器,我们可以不用顾虑对象创建后占用系统资源的问题。我们只用负责对象的创建,而对象销毁和资源释放的问题就可以留给垃圾回收器做了。这里我们需要注意的是垃圾回收器一般只会在内存空间不够的情况下进行资源回收。
十二、java中标识符的命名规则
1、 只能以字母、下划线或”$”开头,严格区分大小写,且长度不限。
2、 类名的每个单词的字母大写
3、 方法名属性名的个单词小写,以后的每个单词字母大写
4、 所有的包结构名字都是小写
5、 常量名所有字母大写
注:点是必须遵守的,2~5点不遵守也不会出错,但建议大家严格遵守以上命名规范。
十三、java中的关键字和保留字
查书
十四、java中的八中基本数据类型
1. boolean:占1个字节
2. byte :占1个字节
3. short :占2个字节
4. int :占4个字节
5. long : 占8个字节
6. char : 占2个字节(可以用来保存汉字)
7. float : 占4个字节
8. double : 占8个字节
十五、正负数在内存空间中的存放
正数 在内存空间中存发的是源码。
负数 在内存空间中存发的是正数源码对应的补码。
补码:在源码的基础上取反末位加1。
十六、基本数据类型之间的转换
1、 正向过程:从低字节到高字节可以自动转换。
byte->short->int->long->float->double
注:boolean不能转。
2、 逆向过程:从高字节到低字节用强制类型转换
例:int a = (int)3.12
注:逆向转换将丢失精度。
十七、java中的转义字符
1. 表示格式控制的转义字符(如:/n /t)与C++相同。
2. Java中用“/u四位十六进制的数字”表是将字符转换成对应的unicode编码。
十八、表达式和流程控制
instanceof():用户判断某一个对象是否属于某一个类的实例。
运算符:单目运算符、双目运算符、位运算符
注:1、>>>是corejava中的位移运算符,表示右移,左边空出的位以0添充。>>右移
2、将一个数右移n位相当于将该数除以2的n次方;
3、 将一个数左移n位相当于将该数乘以2的n次方;
4、 &&、||是短路运算符(左边条件不符合时不会执行右边的判断)
Copyright (c) 2006-2023 武汉宏鹏教育咨询有限公司 版权所有 All Rights Reserved.