Java是一种高级计算机语言,它是由SUN公司(已被Oracle公司收购)于1995年5月推出的一种可以编写跨平台应用软件、完全面向对象的程序设计语言。Java语言简单易用、安全可靠、主要面向Internet编程,自问世以来,与之相关的技术和应用发展得非常快。在计算机、移动电话、家用电器等领域中,Java技术无处不在。
为了使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发,SUN公司将Java划分为三个技术平台,它们分别是JavaSE、JavaEE和JavaME。
Java SE(Java Platform Standard Edition)标准版,是为开发普通桌面和商务应用程序提供的解决方案。JavaSE是三个平台中最核心的部分,JavaEE和JavaME都是从JavaSE的基础上发展而来的,JavaSE平台中包括了Java最核心的类库,如集合、IO、数据库连接以及网络编程等。
Java EE(Java Platform Enterprise Edition) 企业版,是为开发企业级应用程序提供的解决方案。JavaEE可以被看作一个技术平台,该平台用于开发、装配以及部署企业级应用程序,其中主要包括Servlet、JSP 、JavaBean 、JDBC、EJB、Web Service等技术。
Java ME(Java Platform Micro Edition) 小型版,是为开发电子消费产品和嵌入式设备提供的解决方案。JavaME主要用于小型数字电子设备上软件程序的开发。例如,为家用电器增加智能化控制和联网功能,为手机增加新的游戏和通讯录管理功能。此外,Java ME提供了HTTP等高级Internet协议,使移动电话能以Client/Server方式直接访问Internet的全部信息,提供最高效率的无线交流。
JDK(Java Development Kit):Java的开发工具
Java中文网站:
Java语言是一门编译型语言也是一门解释型语言
强类型语言
Java的数据类型分为两大类:
数据类型的默认值
什么是变量
其中:
为了能使用某一个包的成员,我们可以导入包“import”
if
if else
switch
which循环(先判断,后执行)
do ...which循环(先执行,后判断,至少执行一次)
for循环
增强版for循环
break
continue
1. 什么是Java方法
2.方法的定义
什么是递归?
1.什么是数组?
2.数组声明创建
获取数组长度:
3、数组的特点
4、图解数组
5、数组的创建
6、数组的边界
7、小结
定义:
常用功能:
1、面向过程思想:
2、面向对象思想:
3、什么是面向对象:
4、三大特性
修饰符 返回值类型 方法名(参数。。。){ 方法体 return 返回值;}
break和return的区别
break:跳出switch,结束循环
return 结束方法,返回一个结果
非静态方法:
// 非静态方法 public void student(){ System.out.println("学生很开心"); } =======================================// 非静态方法调用// 调用需要实例化 new这个Java_09_FangFa3类 Java_09_FangFa3 fa3 = new Java_09_FangFa3(); fa3.student();
静态方法:
// 静态方法 public static void student1(){ System.out.println("大数据牛!!!"); } =========================================// 静态方法调用// 类.方法名 Java_09_FangFa3.student1();
形参和实参
// 形参 public static int min(int a ,int b){ return a+b; }
值传递和引用传递
this关键字
无参构造:
public class Person {// 一个类即使什么都不写,他也会存在一个方法 String name;// 无参构造器// 实例化初始值// 1、使用new关键字必须要有构造器,new的本质就是调用构造器 public Person() { }
有参构造:
public class Person {// 一个类即使什么都不写,他也会存在一个方法 String name;// 有参构造// 一旦有了有参构造,就必须要有无参构造 public Person(String name) { this.name = name; } }
调用:
// 构造器的使用 Person person = new Person("xioahe"); System.out.println(person.name);
Pet类
public class Pet { String name; int age ;// 默认就有无参构造 public Pet() { } public void shout(){ System.out.println(this.name+ "叫了一声"); }}
程序入口:
Pet dog = new Pet();dog.age=3;dog.name="wangcai";dog.shout();// cat没有赋值Pet cat = new Pet();
概念:
优点:
父类
public class Person {}
子类
// 继承关键字public class Student extends Person { }// 继承关键字public class Teacher extends Person{}
super关键字 VS this关键字
super:
不同:
父类
//这是一个人 类public class Person { protected String name = "lisi"; public Person() { System.out.println("person无参执行了"); } //私有的东西无法被继承 public void print(){ System.out.println("Java是一门好语言1!"); }}
子类
//这是一个学生类// 子类会继承父类,就会拥有父类的所有方法// 在Java类中,所有的类,都会默认继承Object类// 继承关键字public class Student extends Person { private String name = "myhes"; public Student() { //隐藏代码,调用了父类的无参构造,必须放在子类构造器·第一行 super(); System.out.println("student无参执行了"); } public void print1(){ System.out.println("Java是一门好语言2!"); } public void test(String name){ System.out.println(name);//xiaohe 程序输入的name System.out.println(this.name);//myhes 获取本类中的name System.out.println(super.name);//lisi 获取父类的name } public void test1(){ this.print1(); //this指向本类方法 super.print(); //super指向父类方法 }}
方法重写
一句话:子类的方法和父类的方法必须一致:方法体不同
为什么要重写:
父类
public class A { public void add(){ System.out.println("A>>>B"); }}
子类
public class B extends A{// 静态方法和非静态方法区别很大 // 静态:方法的调用只和A,B,定义的类型有关 //非静态: 非静态的方法才叫重写,// Override 重写 @Override //注解:有功能的注解 public void add() { System.out.println("大数据"); }}
启动
// 重写 B b = new B(); b.add();// 父类的引用指向了子类 A a = new B();//子重写了父类的方法 a.add();
概念:
多态存在的条件:
注意:
多态是方法的多态,属性没有多态
Person父类
//多态public class Person { public void sun(){ System.out.println("这是一个加法"); }}
student子类
public class Student extends Person{ @Override public void sun() { System.out.println("增强加法"); } public void jian(){ System.out.println("这是一个减法"); }}
程序类
// 多态// 子类能调用的方法都是自己的和父类的 Student student1 = new Student();// 指向父类// 父类型,可以指向子类,不能调用子类独有的方法 Person student2 = new Student();// 爷爷 Object student3 = new Student();// 方法重写时,父类调用的方法也走子类的方放 student1.jian(); ((Student) student2).jian(); }
// instanceof// Object > Person >Student// Object > String// 存在继承关系才true Object obj = new Student(); System.out.println(obj instanceof Student);//true System.out.println(obj instanceof Person);//true System.out.println(obj instanceof Object);//true System.out.println(obj instanceof String);//false
Student类
public class Student { private static int age;//静态变量 private double score; //非静态变量// 非静态方法 public void run(){ }// 静态方法 ,静态属性和静态属性 类一起加载的,所以能直接调用 public static void add(){ } public static void main(String[] args) {// Student s1 = new Student(); System.out.println(s1.score); //通过对象访问// age //静态变量可以直接调用// Student.age // 类变量 Student s2 = new Student(); s2.run();// 通过对象访问非静态方法 add();// 静态方法可以直接调用 }
Person类
//静态代码块public class Person { { // 匿名代码块,在构造器之前 System.out.println("这是一个匿名代码块"); } static { //静态 代码块 ,只执行一次 System.out.println("这是一个静态代码块"); } public Person(){ System.out.println("构造方法"); } public static void main(String[] args) { Person person1 = new Person(); System.out.println("============================"); Person person2 = new Person(); }//结果 /*这是一个静态代码块 这是一个匿名代码块 构造方法============================ 这是一个匿名代码块 构造方法 */
小结:
普通类:只有具体实现
抽象类:具体实现和规范(抽象方法)都有!
接口:只有规范,自己不能够写方法
接口一
//接口关键字 interfacepublic interface UserService {// public void run(){ } //接口中所有的定义都是抽象的 使用的是public abstract 修饰// public abstract void run(); void add(String name); void delete(String name); void update(String name); void query(String name);}
接口二
public interface TimeService { void time();}
实现类
//这是一个接口实现类// 类通过 implements 接口 JAVA是单继承的,但是可以通过接口实现多继承public class UserServiceImpl implements UserService,TimeService {//实现了接口的类,就需要重写接口中的方法 @Override public void add(String name) { System.out.println("今天星期五"); } @Override public void delete(String name) { } @Override public void update(String name) { } @Override public void query(String name) { } @Override public void time() { }}
什么是内部类
成员内部类
public class Outer { private int age = 18; public void run(){ System.out.println("这是外部类"); }// 内部类 public class add{ public void add(){ System.out.println("这是一个內部类"); // 内部类可以获得外部类的私有属性/方法 public void e1(){ System.out.println(age); } } }}
静态内部类
// 静态内部类 public static class add{ public void add(){ System.out.println("这是一个静态內部类"); }
局部内部类
// 局部内部类// 在方法里面再写一个类 public void run1(){ class Inner{ } }
匿名内部类
public class Test { public static void main(String[] args) {// 没有名字实例化类,不用将实例保存到变量中// 匿名内部类 new Outer().run(); }}
什么是异常
异常的体系结构
Java异常层级关系
处理方法
异常处理五个关键字:
public class Test { public static void main(String[] args) { int a = 1; int b = 0;// 捕获异常// 如果要捕获多个异常 : 要按照异常层级关系 从小到大 try { //监控异常区域 System.out.println(a/b); } catch (Exception e) { //catch 捕获异常 System.out.println("程序出错"); //捕获异常后执行代码块 }finally { //处理善后工作 System.out.println("finally"); }// finally可以不要 }}
小伙伴们有兴趣想了解内容和更多相关学习资料的请点赞收藏+评论转发+关注我,后面会有很多干货。
我有一些面试题、架构、设计类资料可以说是程序员面试必备!所有资料都整理到网盘了,需要的话欢迎下载!私信我回复【07】即可免费获取
原文出处:www.shaoqun.com/a/1235287.html