JavaSE学习

步入Java

步入JAVA

一、概念JDK,IDE等

  • JVM(Java Virtual Machine):Java虚拟机, 真正运行Java程序的地方。
  • 核心类库:Java自己写好的程序,给程序员自己的程序调用的。
  • JRE(Java Runtime Environment): Java的运行环境。
  • JDK(Java Development Kit): Java开发工具包(我们配置环境就是下载jdk,不同版本的开发工具包都可以用)JDK的组成

Java的跨平台是什么含义,Java如何实现跨平台的?
答:一次编译、处处可用。我们的程序只需要开发一次,就可以在各种安装了JVM的系统平台上(Windows,Linux,MacOS)运行

集成开发环境( IDE, Integrated Development Environment )
答:把代码编写,编译,执行等多种功能综合到一起的开发工具,可以进行代码智能提示,错误提醒,项目管理等等。常见Java的IDE工具有:Eclipse、MyEclipse、IntelliJ IDEA、Jbuilder、NetBeans等。

二、基础语法

1、类型转换:自动类型转换,表达式的自动类型转换,强制类型转换

类型转换

2、逻辑运算符:

符号介绍说明
&逻辑与可用于位运算,当左右两边的条件不是布尔型,而是数字时,会进行位运算
|逻辑或只要有一个为true、结果就是true
逻辑非你真我假、你假我真。 !true=false 、 !false= true
^逻辑异或如果两个条件都是false或者都是true则结果是false。两个条件不同结果是true
&&短路与判断结果与“&”一样。过程是左边为 false,右边则不执行
||短路或判断结果与“|”一样。过程是左边为 true, 右边则不执

3、参数传递机制:

内存图解

4、方法重载:
只要是同一个类中,方法名称相同、形参列表不同(形参个数、类型、顺序,任何一个不同),那么他们就是重载的方法,其他都不管!(如:修饰符,返回值类型都无所谓)

区别方法重写方法重载
方法关系描述的是父类和子类(接口实现) 的方法关系描述的是同一个类中多个同名方法的方法关系
Override 关键字需要使用 @Override 关键字修饰不需要
参数类型和参数个数不能修改必须修改
返回类型只能变小或相同,不能变大可修改
抛出异常只能变小或删除,不能抛出新的或者更大的异常可修改
权限控制符只能变大,不能变小可修改

三、面向对象

面向对象又称OOP(Object Oriented Programming) 分开来看就是:Object:对象,Oriented: 面向的,Programming:程序设计。

面向对象的三大特征: 封装,继承,多态。

构造器: 定义在类中的,可以用于初始化一个类的对象,并返回对象的地址。

  • 无参数构造器(默认存在的):初始化对象时,成员变量的数据均采用默认值。
  • 有参数构造器:在初始化对象的时候,同时可以接收参数为对象进行赋值。

注意: 一旦定义了有参数构造器,那么无参数构造器就没有了,如果还想用无参数构造器,此时就需要自己手写一个无参数构造器了。

成员变量和局部变量的区别:

区别成员变量局部变量
类中位置不同类中,方法外常见于方法中
初始化值不同有默认值,无需初始化没有默认值,使用之前需要完成赋值
内存位置不同堆内存栈内存
生命周期不同随着对象的创建而存在,随着对象的消失而消失随着方法的调用而存在,随着方法的运行结束而消失
作用域在所归属的大括号中

权限修饰符: 有四种作用范围由小到大(private -> 缺省 -> protected - > public ),最大范围依次是(同一个类中,同一包的所有类中,不同包的子类中,不同包的所有类中)

继承:

  • 子类可以继承父类的属性和行为,但是子类不能继承父类的构造器
  • 子类可以继承父类的私有成员变量和私有方法,只是不能直接访问
  • 子类不能继承父类的静态成员变量和静态方法,只是可以共享使用,并非继承
  • 子类中所有的构造器默认都会先访问父类中无参构造器,再执行自己的构造器(因为子类有可能会使用到父类中的数据),子类构造器的第一行语句默认都是:super(),不写也存在

多态:
同类型的对象,执行同一个方法,可以表现为不同的形态。前提:有继承/实现关系;有父类引用指向子类对象;有方法重写。
多态中成员访问特点:

  • 方法调用:编译看左边,运行看右边。
  • 变量调用:编译看左边,运行也看左边。(注意)
1.static关键字

静态成员变量:有static修饰,属于类、加载一次,内存中只有一份。

**静态成员方法:**有static修饰,归属于类,建议用类名访问。

注意:

  • 静态方法只能访问静态成员变量和静态方法,不可以直接访问实例成员变量和实例方法。
  • 实例方法可以访问静态成员变量和静态方法,也可以访问实例成员变量。
  • 静态方法中是不可以出现this关键字的。

静态代码块:
格式:static{}
特点:需要通过static关键字修饰,随着类的加载而加载,并且自动触发、只执行一次。一般在类加载的时候做一些静态数据初始化的操作,以便后续使用。

构造代码块(了解,见的少):
格式:{}
特点:每次创建对象,调用构造器执行时,都会执行该代码块中的代码,并且在构造器执行前执行,一般用来初始化实例资源。
静态代码块内存图

2.final关键字
  • 修饰类:表明该类是最终类,不能被继承
  • 修饰方法:表明该方法是最终方法,不能被重写
  • 修饰变量:
    • final修饰的变量是基本类型:那么变量存储的数据值不能发生改变
    • final修饰的变量是引用类型:那么变量存储的地址值不能发生改变,但是地址指向的对象内容是可以发生变化的
  • 常量:public static final修饰的成员变量。在编译阶段会进行“宏替换”:把使用常量的地方全部替换成真实的字面量。常用来作为信息标志和分类:UP,DOWN,LEFT,RIGHT
3.abstract抽象

使用抽象类是为了代码的复用:提供公共的实现代码,抽象出有重复部分。

  • abstract可以修饰类、成员方法,类就是抽象类,方法就是抽象方法。抽象方法只有方法名,例如:absract void brew();,不能声明方法体
  • 一个类中如果定义了抽象方法,这个类必须声明成抽象类,否则报错
  • 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
  • 应用:模板方法设计模式
4.interface接口

使用接口的动机是为了实现多态性:体现的是一种规范(约束)思想,注重代码的扩展性和可维护性。

JDK8之前:

  • 接口中只能是抽象方法和常量,接口不能实例化,接口中的成员都是public修饰的
  • 一个类可以实现多个接口,一个接口可以同时继承多个接口

JDK8之后新增的方法:

  • 默认方法(实例方法):default修饰,只能实现类的对象进行调用
  • 静态方法:static修饰,只能用当前接口类名调用
  • 私有方法:private修饰,JDK9开始才有的,只能在接口内部被其他方法调用
  • 他们都会默认被public修饰
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值