Java环境安装
Java工程师都是从JDK环境变量配置开始学习的,下面手把手教大家JDK环境变量配置,5大步骤就可以配置好了。
第一步:电脑右键属性
右击我的电脑–>属性,如下图所示:
第二步:高级系统设置
在打开的系统窗口中,在左侧找到高级系统设置选项并打开,如下图所示:
第三步:环境变量
弹出窗口中点击【环境变量】,如下图所示:
第四步:配置JAVA_HOME
新建系统环境变量,如下图所示:
变量名输入 JAVA_HOME,变量值就是在安装时选择的安装路径,到安装目录把地址复制一下,粘贴过来就好了,然后点击确定。
第五步:配置Path
接下来在系统环境变量中找到Path,选中,然后再点击编辑,在弹出的新窗口中点击新建,输入”%JAVA_HOME%\bin”,点击确定。
下面测试以下:打开CMD命令行窗口,输入”java -version”,如下图所示:
如果出现JDK的版本信息,说明JDK配置环境变量成功了,恭喜你可以开始你的Java之旅了。
Java基本数据类型
Java语言提供了8种基本数据类型,分别是 byte、short、int、long、float、double、boolean、char。
如下图所示:
Java构造函数
Java构造函数 是一种特殊的方法,主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值。
构造方法语法
声明格式:构造方法修饰词列表 类名(方法参数列表)
构造方法修饰词列表:public、protected、private
[修饰符列表] 构造方法名(形式参数列表) {
构造方法体;
}
示例如下:
- //手动编写构造函数
- public class student{
- private int age;
- private String name;
- //无参构造函数
- public student(){}
- //全参构造函数
- public student(int age, String name){
- this.age = age;
- this.name = name;
- }
- //部分参数构造函数
- public student(String name){
- this.name = name;
- }
- }
Java接口
接口英文称作interface,在软件工程中,接口泛指供别人调用的方法或者函数。
在Java中,定一个接口的形式如下:
- public interface 接口名 {
- // 声明变量
- // 抽象方法
- }
接口无法被实例化,但是可以被实现,用implements表示,必须实现接口内所描述的所有方法。
用现实生活中的一个例子来说明,比如:大家最熟悉的支付场景,现在用的比较多的就是:微信和支付宝。
这样我们就可以先定义好支付的接口,如下所示:
- /**
- * 支付接口
- * @author mikechen
- * */
- public interface Pay {
- public String pay();
- }
下面微信和支付宝就可以分别去实现自己的实现类。
- /**
- * 接口详解
- * @author mikechen
- * */
- public interface Pay {
- public String pay();
- }
- /**
- * 支付宝支付
- */
- public class AliPay implements Pay {
- @Override
- public String pay() {
- System.out.println("支付宝pay");
- return "success";
- }
- }
- /**
- * 微信支付
- */
- public class WeixinPay implements Pay {
- @Override
- public String pay() {
- System.out.println("微信Pay");
- return "success";
- }
- }
- public static void main(String[] args) {
- /**
- * 支付宝应用
- */
- Pay pay = new AliPay();
- pay.pay();
- /**
- * 微信支付应用
- */
- pay = new WeixinPay();
- pay.pay();
- }
Java数组
Java数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成,其中每一个数据称作一个数组元素。
每个数组元素可以通过一个下标来访问它们,具体如下图所示:
Java常量
ava常量的定义是:用final修饰的量称为常量,并且在类编译时期载入类的常量池中。
常量举例:
- final int COUNT=10;
采用接口(Interface)的中变量默认为static final的特性,示例如下:
- public interface ConstantInterface {
- String SUNDAY = "SUNDAY";
- String MONDAY = "MONDAY";
- String TUESDAY = "TUESDAY";
- String WEDNESDAY = "WEDNESDAY";
- String THURSDAY = "THURSDAY";
- String FRIDAY = "FRIDAY";
- String SATURDAY = "SATURDAY";
- }
Java枚举
Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等。
Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。
举类常应用于 switch 语句中:
enum Color
{
RED, GREEN, BLUE;
}
public class MyClass {
public static void main(String[] args) {
Color myVar = Color.BLUE;
switch(myVar) {
case RED:
System.out.println("红色");
break;
case GREEN:
System.out.println("绿色");
break;
case BLUE:
System.out.println("蓝色");
break;
}
}
}
执行以上代码输出结果为:
蓝色
Java switch case
Java Switch语句是多路分支语句,它提供了一种简单的方法,可以用于替换if else。
Switch语法格式如下所示:
- switch(表达式){
- case 常量值 1:
- 语句块1
- [break;]
- ......
- case 常量值 n:
- 语句块n
- [break;]
- deafault:
- 语句块 n+1;
- [break;]
- }
输入星期数,显示今天的运动项目,周一跑步、周二游泳、 周三慢走、 周四单车、 周五爬山、周六拳击、周日休息。
- // switch 进行匹配
- switch (str){
- case "周一":
- System.out.println("跑步");
- bool = false;
- break;
- case "周二":
- System.out.println("游泳");
- bool = false;
- break;
- case "周三":
- System.out.println("慢走");
- bool = false;
- break;
- case "周四":
- System.out.println("骑自行车");
- bool = false;
- break;
- case "周五":
- System.out.println("爬山");
- bool = false;
- break;
- case "周六":
- System.out.println("拳击");
- bool = false;
- break;
- case "周日":
- System.out.println("休息");
- bool = false;
- break;
- default :
- System.out.println("请按格式输入星期数,如:周一");
- break;
- }
Java三目运算
三目元算符又称为三元运算符也称为条件运算符,目的就是根据条件得到数据结果。
Java三目运算格式:
- result = <expression> ? <statement1> : <statement3>;
其中,expression 是一个布尔表达式,当 expression 为真时,执行 statement1, 否则就执行 statement3。
判断年龄,代码如下:
- int age = 56;
- System.out.println(age<18?"未成年":age>55?"老年":"青年");
Java泛型
泛型在java中有很重要的地位,无论是开源框架还是JDK源码都能看到它。
泛型的本质是参数化类型,即给类型指定一个参数,然后在使用时再指定此参数具体的值,那样这个类型就可以在使用时决定了。这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。
泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
Java异常
在Java程序设计中,Java异常处理是非常关键和重要的一部分,程序异常处理的好坏直接影响到整个代码质量。
Java 所有的异常都是从Throwable继承而来的,其下有2个子接口,Error和Exception。
1.Error
Error是无法处理的异常,比如OutOfMemoryError,一般发生这种异常,JVM会选择终止程序,因此我们编写程序时不需要关心这类异常。
2.Exception
Exception,是另外一个非常重要的异常子类,比如NullPointerException、IndexOutOfBoundsException、ClassCastException,这些异常是我们可以处理的异常。
3.Error和Exception的区别
异常和错误的区别是,异常是可以被处理的,而错误是没法处理的。
Java面向对象
Java面向对象之所以使程序设计更加完善和强大,主要是因为面向对象具有继承、封装和多态 3 个核心特性。
Java继承
继承性是面向对象的第二大主要特征,继承就是子类继承父类的特征和行为,使得子类对象具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
现实中的例子:狗和猫都是动物,如果将狗、猫作为类,它们可以继承动物类很多的共同特性和行为。
Java封装
Java封装从字面上来理解就是包装的意思,是将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。
使用封装有四大好处:
1、高内聚:封装细节,便于修改内部代码,提高可维护性;
2、低耦合:简化外部调用,便于调用者使用,便于扩展和协作;
3、安全性:提高代码的安全性,隐藏细节实现;
4、复用性:提高代码的复用性。
Java是使用“访问控制符”来控制哪些细节需要封装,类的访问控制符只能是空或者 public,方法和属性的访问控制符有 4 个,分别是 public、 private、protected 和 friendly。
访问控制修饰符的权限,如下表所示:
上图说明了面向对象的封装性,所以我们要利用它们尽可能的让访问权限降到最低,从而提高安全性。
Java多态
多态(Polymorphism)按字面的意思就是“多种状态”,在面向对象语言中,接口的多种不同的实现方式即为多态。
现实中的例子:举一个手机扫码支付的例子,二维码并不知道客户是通过何种方式进行支付,只有通过二维码后才能判断是走哪种支付方式执行对应流程。
- /**
- * 面向对象:多态
- * @author mikechen
- * */
- public abstract class Pay {
- abstract public String pay();
- }
- /**
- * 支付宝支付
- */
- public class AliPay extends Pay {
- @Override
- public String pay() {
- System.out.println("支付宝pay");
- return "success";
- }
- }
- /**
- * 微信支付
- */
- public class WeixinPay extends Pay {
- @Override
- public String pay() {
- System.out.println("微信Pay");
- return "success";
- }
- }
- public static void main(String[] args) {
- /**
- * 支付宝支付多态应用
- */
- Pay pay = new AliPay();
- pay.pay();
- /**
- * 微信支付多态应用
- */
- pay = new WeixinPay();
- pay.pay();
- }
Java抽象类
在Java中abstract是抽象的意思,可以修饰类、成员方法,由abstract修饰的方法叫抽象方法,由abstract修饰的类叫抽象类。
Java抽象类的语法
1.抽象类语法
- 修饰符 abstract class 类名{
- }
代码示例:
- //抽象类由abstract修饰
- public abstract class Student{
- }
抽象方法的3个特征如下:
1、抽象方法没有方法体;
2、抽象方法必须存在于抽象类中;
3、子类重写父类时,必须重写父类所有的抽象方法。