尚学堂给同学们带来全新的Java300集课程啦!java零基础小白自学Java必备优质教程_手把手图解学习Java,让学习成为一种享受_哔哩哔哩_bilibili
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程
一、 从面向过程编程到面向对象编程的思维转变,什么是面向对象编程
面向对象程序设计(Object Oriented Programming)作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。模型是用来反映现实世界中事物特征的。任何一个模型都不可能反映客观事物的一切具体特征,只能对事物特征和变化规律的一种抽象,且在它所涉及的范围内更普遍、更集中、更深刻地描述客体的特征。通过建立模型而达到的抽象是人们对客体认识的深化。二、 什么是字节码和虚拟机:
字节码是一套设计用来在Java运行时系统下执行的高度优化的指令集。该Java运行时系统称为Java虚拟机(JVM)。JVM其实就是一个字节码解释器。虚拟机将字节码解释成机器码给CPU执行,所以我们在java中通过虚拟机的这种解释执行方式来屏蔽底层操作系统的差异。
JRE = JVM+编译器
JDK= JVM+编译器+类库
三、 环境变量的设置:
选择一个适合自己的JDK版本下载并安装即可,具体流程不详述。
1、右键桌面上“我的电脑”>>“属性”,在弹出的页面上点击“高级系统设置”。
2、在弹出的“系统属性”窗口中“高级”标签页下点击“环境变量”按钮。
3、在弹出的“环境变量”窗口中,点击下方的“新建”按钮,在弹出的“新建系统变量”窗口 中,新建一个名为“JAVA_HOME”的环境变量,变量值为Java的安装路径,
4、设置Path环境变量,该变量已经存在,所以在列表中选择Path,点击下方的“编辑” 按钮,在弹出的窗口中添加如下信息: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,然后点击“确认”按钮即可。
5、和JAVA_HOME一样,新建一个名为“classpath”的环境变量,变量值为: %JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar。
6、在配置好环境变量后,可以进入cmd中检查Java是否安装正确,检查的命令为 java - version
如果能正确的输出Java的版本和JVM版本信息,则说明Java安装正确。
四、 我们的第一个Java程序
public class MyFirstJava{
public static void main(String[] args){
System.out.println(“Hello World”);
}
}
五、 包结构
为了根据需要将不同的原文件放在不同的目录下我们引入了包。包我们可以看作就是一个存放java原文件的目录。
在源码的基础上声明一个包名:package sd0604
加包后我们用“javac MyFirstJava.java –d .”编译后生成的字节码文件就会放在我们指定的包(目录)结构下.
如果我们想指定多级目录那么在目录明之间我们可以用.作为分隔符。
例如:package sd0604.najing.xuanwu
六、 Java中的注释
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:抽象窗口工具.
十、java中的垃圾回收器
因为有了垃圾回收器,我们可以不用顾虑对象创建后占用系统资源的问题。我们只用负责对象的创建,而对象销毁和资源释放的问题就可以留给垃圾回收器做了。这里我们需要注意的是垃圾回收器一般只会在内存空间不够的情况下进行资源回收。
十一、java中标识符的命名规则
1、 只能以字母、下划线或”$”开头,严格区分大小写,且长度不限。
2、 类名的每个单词的首字母大写
3、 方法名属性名的第一个单词小写,以后的每个单词首字母大写
4、 所有的包结构名字都是小写
5、 常量名所有字母大写
注:第一点是必须遵守的,2~5点不遵守也不会出错,但建议大家严格遵守以上命名 规范。
十二、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、 &&、||是短路运算符(左边条件不符合时不会执行右边的判断)