本文将以c++、PHP类比Java来整理笔记。新进来的秃头小宝贝们可以先看看我的码龄,也算是有一些经验了。我很不赞成以强制写笔记这种方式,来证明有没有学习Java,笔记是用来记录重难点与思路的,一些基础性的知识到处都有,牢记于心即可,何必浪费时间写笔记记录。在CSDN上找到很多大佬们的轮子,学习过图像分析等一些经验。
正文:
一、 java是一种面向对象的语言
二、 java运行核心机制
1、 java是运行在一个java虚拟机上jvm。 jvm是一个虚拟的机,具有指令集并使用不同的储存区域。负责执行指令,管理数据、内存、寄存器。
2、对于不同的平台,有不同的虚拟机。
3、java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。
4、编译执行过程如下:
java代码→ (通过javac.exe编译) .class→(通过java.exe执行)不同系统上的jvm
三、java环境的安装与搭建
(1) 什么是JDK, JRE?
1、 JDK: java development kit。是java的开发工具包。JDK其中包含了java的开发工具,也包括了JRE。所以安装了jdk就不用单独安装JRE了。
开发工具如:编译工具(javac.exe)打包工具(jar.exe)等等。
2、JRE: java runtime environment, java运行环境。
包括了java虚拟机和java所需要的核心类库等,如果想要运行一个开发好的java程序,计算机中只需要安装JRE即可。
(2)下载安装JDK
官网:www.oracle.com
安装JDK,注意:安装路径不要有中文或者特殊符号。
四、java语言java是由一个一个类构成的。
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello,World!");
}
}
注意一:模版。
类中可以用main方法(主方法) ,格式是固定的, public static void main(String[] args)。
main是程序的入口,方法内是程序的执行部分。
注意二:注释
可以检测bug,可以方便未来功能的添加与修改。
注意三: print不需要换行加上ln换行。
注意四:多个类,允许存在于同一个源文件中。
但是,编译出来的,有几个类就会对应生成几个class文件。
注意五: public是个关键字,可以修饰类。
如public class HARRY Hoo。若用public修饰了一个类,则这个类可以用在别的类里,而且,文件名必须与这个类名一样。并且一个源文件中,最多只有一个类用public声明。
五、java编辑器
Java 源代码本质上其实就是普通的文本文件,所以理论上来说任何可以编辑文本文件的编辑器都可以作为我们的 Java 代码编辑工具。
虽然eclipse占据了java程序员的40%的市场左右,但是由于本人用习惯了notepad++,用了七年之久。并且notepad++良好的开源环境,使得插件配备上更为完善,使用插件扩展后,效果堪比IDE(集成开发环境)。所以,我目前使用的依然是我熟悉的notepad++。notepad++可以更改编码模式,可以实现代码的重用化,省去大量精力。
六、java基础知识
(1)注释
代码解释:与c++规范相同。
文档注释:程序的注释,各种语言都是大同小异,并且各种语言为了让开发者快速上手,都会使用行业内的现有语言规范。java代码的注释和我编写PHP语言采用的一样,与c++语言规范更为相似。
PHP语言注释 java只需忽略第一行与第九行
学习计算机语言最重要的是理解其中机理,融会贯通。
注释内容可以被JDK中的Javadoc工具所解析,生成一套以网页文件形式体现的该程序的说明文档。
(2)基本语法
和c++极度相似……
(1)关键字定义:被java语言赋予了特殊含义,用作专门用途的字符串。
特点:无小写。
- 用于定义数据类型的关键字: int class boolean interface enum long void floatbyte double short char
- 用于定义数据类型值的关键字: true false null
- 用于定义流程控制的关键字: if else switch case default while do for dobreak continue return
(2)标识符定义:java对各种变量,方法和类等要素命名时使用的字符串序列成为标识符。
特点:凡是自己可以起名字的地方都叫标识符。
定义合法标志符的规则:
①字母,数字,_$组成
②数字不开头
③不可以使用关键字和保留字,但可以包含关键字和保留字。
④Java中严格区分大小写,但不限定长度。
⑤标识符不能包含空格。
java命名规范:
①包名:多单词组成时都用小写。
②类名,接口名:多单词组成时,所有单词的首字母都大写。
③变量名,方法名:多单词组成时,第一个单词首字母小写,第二个单词开始的每个单词首字母都大写。
④常量名:所有字母都大写,多单词时用下划线连接。
(3)变量
变量的分类(数据类型):
1、基本数据类型:
①数值型:整型,浮点型(java里float定义的数字后要加一个F)和c++相同。
②字符型:
char定义单个字符(中文,英文。。..),String定义字符串字符常量以Unicode值储存, Unicode码。
占两个字节
③布尔类型
java中不能以0和非0代替true和false(与c++标准不同)
2、引用数据类型
①类(字符串)
②接口(Java中的便捷性)
③数组
注:类型转化(与c++ 标准相同)
同类型容量小的值可以向容量大的值转换。
整型向浮点型转化。
字符型向整型转化。
1.自动类型转化:(不考虑boolean只考虑char byte short int long floatdouble)
注意:byte,short!只能向int转换。byte不能向short转化。即,只要short,byte,char之间做运算,包括自己之间,都向int转化。
2强制类型转化:容量大向容量小转化。(与c++相同)
注意:会造成精度损失(去高位,取低位)
3.字符串与基本数据类型之间的运算:只能是连接运算:+。其结果仍为一个字符串。
(4)运算符
1.逻辑运算符(与c++不同)
&和&&的区别:&不管左端是否是真,右端都会运算。&&左端是假,右端就不会运算。
|和‖区别与上同理
2.位运算符>>与>>>的区别:前者是有符号右移,后者无符号右移。
有符号是指,最高位是1则补1,是0则补0。
(5)数组
1、java数组的定义以及特征:
①数组是多个相同数据类型的组合,实现对这些数据的统一管理。
②数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。
③数组属于引用类型,数组型数据类型是对象(object),数组中的每个元素相当于该对象的成员变量。
2、如何定义一个数组
public class HARRYHoo {
public static void main(String[] args) {
//第一种 例:
String[] test1 = new String[6];
test1[0] = “数组0”;
test1[1] = “数组1”;
//第二种 例:
String[] test2 = {“数组0”,“数组1”,“数组2”,“。。。。”};
//第三种 例:
String[] test3 = new String[]{“数组0”,“数组1”,“数组2”,“。。。。”};
}
}
3.数组的调用与c++相同
数组名[角标]
4.通过length属性获取数组长度
System.out.println(test1.length);
5.遍历数组中的元素
用for循环,c++中的方法。
6.数组的默认初始化值
①对于byte short int long而言:创建数组以后默认值为0(即使一个也不初始化,此处与c++不同)
②对于float double而言,默认值是0.0
③对于char而言默认值是空格
④对于Boolean而言默认值为false对于引用类型变量构成的数组,默认值是null