JAVA自学--基础篇
java已经学习了一个月了,本人目标是打算三个月自学安卓开发,不过还好能有6年经验的资深人士带领,平常的时候大多数还是自己找资料和视频学,遇到一些实在搞不懂的东西才会去请教,下面分享一些自己学习的心路历程。
我的java学习视频是在阿里云大学里边找到的,内容还比较全,分了基础篇、面向对象篇、高级开发篇,今天先分享一下基础篇的相关内容。
一、java简介
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java是1995年由SUN公司发布的,最初命名为Oak,后来才改为的Java。2009年,Oracle公司收购了SUN,一直到现在,Java还是属于Oracle公司的。Java具有简单性、面向对象、分布式、健壮性、安全性、平*立与可移植性、多线程、动态性等特点。
二、java开发环境配置
不用多说,java开发肯定是要下载JDK、JRE的,最好是到Oracle的官网下载,我之前下载的时候还是jdk9,现在已经是jdk10了,下载后安装完jdk会询问是否连jre也一起安装了,我这边都进行了安装。安装完成后需要进行环境变量的配置(PS:以windows系统为例)。
1、打开计算机→属性→高级系统设置→高级→环境变量。
2、新建JAVA_HOME变量,变量值填写jdk的安装目录,本人的:D:\JAVA\JDK
3、寻找Path变量,在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(PS:注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码。我一开始没设置好,直接把原来的值给覆盖了,导致后续pingIP地址命令都用不了了,后来找了不少资料,反复尝试终于弄好了,现在的变量值:%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SystemRoot%\System32\Windows System Resource Manager\bin;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;)
4、新建CLASSPATH变量,变量值填写.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(PS:最前边有一个点)
5、运行cmd 输入 java -version命令检验配置是否成功,如下所示就是成功了:
6、配置好之后还需要下载一个IDE进行程序开发,目前普遍使用Eclipse
三、java程序基本概念
1、类是java中的基本单位
2、public class 类名称{}(此种方式定义的类文件名称必须与类名称保持一致);class 类名称 {}(此种方式定义的类文件名称可以与类名称不同)
3、类名称要求:每一个单词的首字母必须大写,例如:TestDemo
4、主方法所在的类称为主类,主类都用public class声明
5、System.out.println(内容),ln是换行的意思,去掉ln则输出多个数据时不会换行
6、注释的形式:
①单行注释:// 注释内容(PS:用得最多)
②多行注释:/* 注释内容 */
③文档注释:/** 文档注释标记 */
四、java数据类型划分
1、java数据类型分为两类:
⑴、基本数据类型:
①、数值型:表示整数或小数;
②、整型:byte、short、int、long;(默认值为0)
③、浮点型:float、double;(默认值为0.0)
④、字符型:char;
⑤、布尔型:boolean(默认值为false)
2、引用数据类型:数组、类、接口;
3、数据类型的选择原则:
⑴、在程序开发之中表示整数就使用int,描述小数就使用double;
⑵、long这种数据类型一般会描述日期时间、内存或文件大小;
⑶、如果需要进行编码转换或者进行二进制数据传输,使用byte;
⑷、char一般在描述中文的时候使用到(基本上都会忽略)
⑸、boolean在描述程序逻辑的时候使用
4、关于变量的命名要求:第一个单词的字母小写,而后每个单词的首字母大写,例如:minValue
5、java中使用UNICODE编码,该编码使用十六进制编码,且可以保存任何的文字信息;其编码范围大于ASCII码,常用字母对应的数值范围:A-Z→65-90,a-z→97-122,'0'-'9'→48-57
6、String并不是一个基本数据类型,而是一个引用数据类型,不过这种类型在使用中比较特殊,可以按照基本数据类型的使用模式来进行套用
7、在String类型中,“+”描述的是两个字符串的连接,所有类型只要与String发生了“+”操作都会变为String类型后再进行连接。
五、java运算符
1、++ 变量:先进行自增,后进行运算;变量 ++:先进行运算,而后进行自增。示例如下:
2、三目运算基本用法:数据类型 变量 = 布尔表达式 ? 条件满足时赋值内容 : 条件不满足时赋值内容 ;
3、&&和&、|和||的区别
⑴、逻辑运算之中:
①、&&:表示逻辑与运算,若干个判断条件如果前面有条件返回了false,那么后面的条件不再判断,最终结果为false
②、&:所有的判断条件都要执行
③、||:表示逻辑或运算,若干个判断条件如果前面有条件返回了true,那么后续条件不再判断,最终结果就是true
④、|:所有的判断条件都要执行
⑵、位运算之中:
①、&:运算的两个数据位如果有一个是0结果就是0,全为1时结果才是1
②、|:运算的两个数据位如果有一位是1,最终的结果就是1
六、程序逻辑控制
1、分支结构:
⑴、if (布尔表达式) {
条件满足时的执行代码;
}else if (布尔表达式) {
条件满足时的执行代码;
}... [else {
所有条件都不满足时执行的代码;
}]
2、如果要进行多数值内容的判断那么就可以使用switch完成,但是需要注意的是switch随着JDK版本的变化支持的数据类型也在变化:
⑴、最初的数据类型支持:int、char;
⑵、从JDK1.4开始支持了枚举(enu);
⑶、从JDK1.7开始支持了String
⑷、switch (数字 | 枚举 | 字符 | 字符串) {
case 内容1:{
内容满足时执行的语句;
[break ; ]
}
case 内容2:{
内容满足时执行的语句;
[break ; ]
}... [
default:{
都不满足的时候执行的语句;
}]
如果在编写case的时候没有加上break,则会在满足的case语句之后一直执行到遇见break或全部结束。
2、循环结构:while循环、for循环
⑴、循环的初始化内容
while (循环的结束条件判断) {
循环语句;
修改循环结束条件判断;
}
⑵、循环的初始化内容
do {
循环语句;
修改循环结束条件判断;
} while (循环的结束条件判断);
使用while循环的最大特点在于:如果判断条件不满足就一次都不执行,而使用do...while的特点是即使判断条件不满足也会执行一次。在开发之中基本不适用do...while。
⑶、for (循环初始化条件;循环结束判断;修改循环条件) {
循环体代码;
}
⑷、循环使用原则:
①、对于不知道循环次数,但是知道循环结束条件的使用while循环;
②、如果已经明确知道循环次数,则使用for循环;
3、循环控制:continue、break
⑴、continue:执行到此语句的时候将跳过循环体的剩余部分,而返回到循环的判断处进行处理
⑵、break:退出整个的循环
⑶、其它的语言里面有一种goto的功能,这种功能一般不会出现在java里面,而且也没有这样的关键字,不过可以利用continue实现与之一样的功能
七、方法的定义与使用
1、方法的基本定义
public static 方法返回值 方法名称([参数类型 变量,...]) {
方法体代码;
[return [返回值] ;]
}
对于方法的返回值有以下的两类:
⑴、void:没有返回值;
⑵、数据类型(基本类型、引用类型);
但是在定义方法的时候有一点特别需要注意:如果某一个方法上使用了void定义(无返回值),那么该方法中可以直接利用return来结束调用。一般而言,这种return的处理往往需要结合if判断来实现。
2、类是构造对象的模版或蓝图。对象中的数据称为实例域,操作数据的过程称为方法。构造器是一种特殊的方法,用来构造并初始化对象(也可以叫做构造方法)。
⑴、构造器与类同名
⑵、每个类可以有一个以上的构造器
⑶、构造器可以有0个、1个、或多个参数
⑷、构造器没有返回值
⑸、构造器总是伴随着new操作一起调用
3、方法重载:方法名称相同,参数的类型或个数不同。在进行方法重载的时候有一个重要的原则:要求方法的返回值类型一定要相同。System.out.println()是一个被重载的方法。
4、方法递归调用:一个方法自己调用自己的形式。方法必须有一个递归的结束条件。方法在每次递归处理的时候一定要做出一些变更。