【Java学习总结】

本文总结了Java语言的基础知识,包括基本数据类型、命名规则、运算符优先级和循环。深入探讨了类、对象、权限修饰符、构造函数、特性如封装、继承和多态。同时介绍了抽象类、接口、重写与重载,以及内部类和异常处理机制。文章强调了从面向过程到面向对象的思想转变,以及如何理解和应用这些概念。
摘要由CSDN通过智能技术生成

  • 对于很多只会C语言的初学者而言,面对java基础语法学习,反而感觉很难,我也一样。其实其中最大的问题不是语法难,而是一种编程思想的转变。面向过程就是把你的代码封装成函数,然后依次去做一件事情,面向过程是把你要做的事情抽象成对象,告诉对象去做。所以要想学好java入门,必须知道类和对象的概念。
  • 类是对生活中事物的抽象描述,比如人类,动物类,交通工具类;对象即是对类的具体实例化,比如张三是人,猫是动物,飞机是交通工具

一、java语言基础部分

1、基本数据类型

  • java语言有8种基本数据类型:byte(占1个字节),short(占2个字节),int(占4个字节),long(占8个字节), float(占4个字节),double(占8个字节),char(占2个字节),boolean(占1个字节)。

2、java命名规则:

  • 包名:所有字母都小写,比如,_xyyyzzz
  • 类名,接口名:所有单词首字母大写,比如,_xYyyZzz
  • 变量名,函数名:第一个单词小写,其他单词首字母大写,比如,_xYyyZzz
  • 常量名:所有字母大写,多单词用下划线分割,比如,_X_YYY_ZZZ

3、运算符优先级:

  逻辑与&&优先级 大于 逻辑或‖
  按位与&优先级 大于 按位或|

4、switch表达式

  • JKD1.7switch表达式的值支持字符串,比如swtich("周一”)

5:高级 for循环(这个在遍历集合中很给力)

  • 格式:for(数据类型 变量名:被遍历的集合(Collection)或数组)0

二、类、对象及特性

1、类和对象

  • 类:对现实生活中事物的描述
  • 对象:就是这类事物中实实在在的个体,java中一切都是对象,具体对象是java在堆内存中用new建立的实体。

2、权限修饰符

  • 一个.java文件中只能有一个public类
  • static:用于修饰成员(成员变量和成员方法),当成员被static修饰后,该成员可被类名直接调用,类名.静态成员
  • static修饰后的特点:
    随着类的加载而加载,优先于对象存在,被所有对象共享,可以被类名直接调用。
  • 静态方法只能访问静态成员,其方法中不能定义super,this关键字,因为静态优先于对象存在,主函数是静态的
  • 静态优点:把对象的共享数据单独存储,节省空间,可被类名直接调用。缺点:生命周期过长,访问出现局限(只能访问静态)。

3、this关键字

  • this关键字:代表本类对象,哪个对象调用this所在的函数,this就代表哪个对象

4、构造函数

  • 一个类中默认会有一个空参数的构造函数,其权限和所属类的权限一致作用是给对象进行初始化,对象一建立就会调用与之对应的构造函数。这个地方有容易混淆的地方,面试时会遇到,开发者一般不会玩这个,就是静态代码块和构造代码块

5、特性

  • 封装:隐藏对象属性和实现细节,仅对外提供公共访问方式,提高复用性和安全性
  • 继承:必须类与类间有关系才能继承,提高代码复用性,java只支持单继承,但是可以有多层继承,但是可以用实现来弥补
  • 子类为什么一定要访问父类的构造函数呢:因为父类中的数据,子类是可以直接获取的,所以子类对象在建立的时候,需要先查看父类是如何对这些数据进行初始化的,如果要指定父类中指定的构造函数,可以手动定义 super语句来实现。
  • 多态:某一类事物的多种存在形态
  • 多态的实现:父类的引用指向了自己的子类对象(向上转型)
  • 多态的前提:类与类之间有关系,继承或实现,通常还存在覆盖多态的好处:提高程序扩展性,弊端:父类引用只能访问父类中成员。

6、抽象类(里面有一些看不懂的东西)哈哈

 抽象方法一定在抽象类中
 抽象方法和抽象类必须被关键abstract修饰
 抽象类不能用new创建对象,不能实例化,因为没意义,方法没内容
 抽象类中的抽象方法要被使用,必须由子类重写所有的抽象方法后,建立子类对象调用

7、接口

  • 接口是对外暴露的规则,是程序的功能扩展,接口可以用来多实现,类与接口是实现关系,类可以继承一个类的同时实现多个接口,接口与接口间可有继承关系。
  • 接口是特殊的抽象类,接口成员有固定修饰符,常量:publicstaticfinal方法:publicabstract
  • 接口不能创建对象,被子类实现后,子类需重写接口中所有抽象方法,这样子类才能实例化,否则子类还是一个抽象类。

8、重写与重载

 重写:是对父类方法的重写,子父类方法要一模一样
 重载:同名函数的参数列表

9、内部类

  • 描述事物时,事物内部还有事物,该事物可用内部类描述,比如人体类里有心脏类,
  • Java的内部类构造时持有对外部类的应用,C++不会,这一点和C++不一样。这点容易引起内存泄露,要注意.
  • 在Java中,非静态的内部类和匿名内部类都会隐式地持有其外部类的引用。静态的内部类不会持有外部类的引用。
  • 内部类访问规则:
    内部类可直接访问外部类(这里的意思当然就是包含内部类的类)中成员,包括私有
  • 外部类要访问内部类,必须建立内部类对象
  • 内部类可被static修饰,此时其只能访问静态成员了,这个你都会了,哈哈。但是内部类定义在局部时,也就是在外部类的方法中定义一个类,此时的内部类是不能被成员修饰符修饰的,此时仍能访问外部类中的成员,并只能访问其所在的局部中的被final关键字修饰的局部变量。
  • 匿名内部类,这个在开发中也是可以用的,这个一般是继承或实现一个类,调用或重写其方法时方便的使用,缺点是可读性较差。

10、异常处理机制

  • java两个重要特性,垃圾回收机制和异常处理机制,使得java没有内存泄露,实现平台无关。

  • 这个地方注意catch捕捉到异常后要有个处理,不要不写也不要直接toString,printStackTrace(),要处理。还有一些必须执行的语句要放到finally代码块中,比如数据库的关闭等。

throws和throw区别:

throws使用在函数上,throw使用在函数内
throws后面跟异常类名,可以跟多个,逗号隔开,throw后跟异常对象。
自定义异常类,只需继承Exception类,自定义输出内容的话,在构造函数里调用Exception类的构造函数,写super(str)即可,这个str就是你构造函数参数,也就是你自定义的输出内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值