大一Java学习须知及基础知识点整理

Java中容易混淆的概念解析

在Java编程中,有几个概念常常让初学者感到困惑。以下是对其中一些概念的解析:

1. 值传递与引用传递

Java中的方法参数传递是值传递,但这里有一个常见的误解。对于基本数据类型(如int, float等),传递的是值的副本;而对于对象,传递的是对象引用的副本,但对象本身仍然是按值传递的。这意味着在方法内部修改对象的状态会反映到原始对象上,但重新分配引用(如

obj = new Object();)则不会。

2. 静态变量与实例变量

静态变量(类变量)属于类本身,而实例变量属于类的实例(对象)。静态变量在类加载时初始化,而实例变量在创建对象时初始化。静态变量可以通过类名直接访问,而实例变量则需要通过对象来访问。

3. 抽象类与接口

抽象类是一种不能被实例化的类,但可以包含抽象方法和非抽象方法。接口则是一种完全抽象的类,只能包含抽象方法和常量。在Java 8及以后版本中,接口还可以包含默认方法和静态方法。一个类可以实现多个接口,但只能继承一个抽象类(除了通过多重继承接口)。

4. 继承与组合

继承是面向对象编程中的一个重要概念,允许一个类(子类)继承另一个类(父类)的属性和方法。然而,过度使用继承可能导致代码难以维护和理解。组合是另一种实现代码复用的方式,它允许一个类包含另一个类的对象作为自己的成员变量。在大多数情况下,组合比继承更加灵活和可维护。

 

 

 

 

 

 

 

 

 

 

 

常见Bug或异常的解决方法

在Java编程中,遇到Bug和异常是不可避免的。以下是一些常见问题的解决方法:

1. 空指针异常(NullPointerException)

空指针异常是Java中最常见的运行时异常之一。它通常发生在尝试访问或修改一个为null的对象的成员时。解决方法是确保在访问对象之前检查它是否为null。

2. 数组越界异常(ArrayIndexOutOfBoundsException)

数组越界异常发生在尝试访问数组的非法索引时(即小于0或大于等于数组长度)。解决方法是确保在访问数组元素之前检查索引的有效性。

3. 类找不到异常(ClassNotFoundException)

类找不到异常通常发生在尝试加载一个不存在的类时。这可能是由于类路径设置不正确、JAR包未包含在项目中或类名拼写错误等原因导致的。解决方法是检查类路径和JAR包依赖项,并确保类名拼写正确。

4. 并发修改异常(ConcurrentModificationException)

并发修改异常通常发生在迭代集合(如ArrayList)时尝试修改该集合时。解决方法是使用线程安全的集合(如CopyOnWriteArrayList)或使用迭代器提供的remove方法(如果可用)。

Java学习心得或经验分享

学习Java是一个持续不断的过程,以下是一些我的学习心得和经验分享:

实践是最好的老师:不要仅仅满足于阅读书籍或观看教程。编写代码并运行它是学习Java的最佳方式。通过实践,你可以更深入地理解Java的语法和概念。

掌握基础:在学习Java时,确保你掌握了基础知识,如变量、数据类型、控制结构、面向对象编程等。这些基础知识是构建更复杂程序的基础。

阅读官方文档:Java官方文档是了解Java语言特性和API的宝贵资源。当你遇到问题时,查阅官方文档通常能找到答案。

参与开源项目:参与开源项目是一个很好的学习机会。通过查看和修改他人的代码,你可以学习新的编程技巧和最佳实践。

持续学习:Java是一个不断发展的语言,新的特性和API不断被添加到标准库中。保持对新技术和趋势的关注,并持续学习新的知识和技能。

学习Java课程的过程中,我深刻体会到了编程语言的魅力和挑战。从基础的语法规则变量数据类型,到面向对象编程的类、对象、封装继承多态等概念,每一步的学习都让我对Java有了更深入的理解。通过系统的学习和实践,我逐渐掌握了Java的核心知识,并且能够独立开发简单的Java应用程序。

在学习的过程中,我遇到了不少挑战,尤其是在处理JSPservlet时,调试的复杂性和大小写敏感的问题让我印象深刻。但是,通过不断的实践和老师的指导,我逐渐克服了这些困难,对Java的应用有了更全面的认识。

除了技术知识的学习,我还深刻体会到了实践的重要性。通过参与实际项目的开发,我不仅锻炼了自己的编程能力,还提高了项目管理能力,了解了实际项目开发的流程和要求。此外,学习使用开发工具和框架如EclipseIntelliJ等,也大大提高了我的开发效率和代码质量。

学习Java的过程中,我还学会了如何分析问题、寻找解决方案,培养了独立解决问题的能力。这种能力的培养对于未来的工作和学习都是非常重要的。

总的来说,学习Java课程不仅让我掌握了编程技能,还提高了我的问题解决能力和团队合作精神。这次学习经历对我的个人发展和职业规划产生了积极的影响,使我更加坚信Java在软件开发领域的重要地位。

 

Java语言知识点整理(30个必备熟记)

(1)类和对象

类:被class关键字修饰叫做类。理解:图纸。

对象:根据类生产出来制造出来的实例叫做对象。理解:实体。

(2)成员变量

在类中定义的变量叫做成员变量。理解:属性。

(3)成员方法

在类中定义的方法叫做成员方法。理解:功能。

(4)构造方法

方法名和类同名、没有返回值也没有void关键字。

如果一个构造方法都没有、系统默认提供一个无参的构造方法(如果写了则不提供)

(5)创建对象的语法格式

类名 变量 = 当前类的对象(new 构造方法)

父类 变量 = 子类的对象(new 构造方法)

接口 变量 = 实现类的对象(new 构造方法)

(6)编写类的步骤和创建对象的方式

1.创建类

2.编写成员变量

3.生成构造方法(建议:无参、有参)

4.生成getter和setter方法(说明:根据成员变量生产)

5.生成toString方法(说明:测试打印方法)

6.根据类创建对象(说明:调用无参、有参构造方法创建对象)

(7)java语言类型的分类

基本数据类型:8个

类类型/引用类型:其它

(8)基本类型和引用类型区别

基本类型:变量中存储的是真实的值。

引用类型:变量中存储的是对象在内存中的地址的值。

(9)值传递

在调用方法传参的过程中、基本数类型传递的是真实的值、引用类型传递的是地址的值。

(10)成员变量和局部变量的区别

成员变量:在类中定义的作用范围类内部。

局部变量:在方法中定义的作用范围方法内部。

(11)static静态关键字

被static修饰成员属于类叫做类成员、通过【类名.成员】的方式调用

不被static修饰成员属于对象叫做对象成员、通过【对象.成员】的方式调用

(12)抽象类:被abstract修饰的类叫做抽象类。理解:抽象图纸。

成员变量、成员方法、构造方法:定义和具体类一样。

(13)抽象类有有构造方法、但是不能创建对象。

// Father f = new Father();

(14)抽象方法:被abstract抽象关键字修饰、并且没有方法大括号(用分号取代方法体)

(15)包含抽象方法的类一定是抽象类、抽象类不一定包含抽象方法

(16)继承的概念:子类通过extends继承关键字继承父类、父类所有成员子类都继承下来。

(17)具体类和抽象类之间能够相互继承?

具体类 继承 具体类 可以

具体类 继承 抽象类 可以(重点)

抽象类 继承 抽象类 可以

抽象类 继承 具体类 可以

(18)继承的设计原则:

抽象类-父类:负责设计

具体类-子类:负责实现

(19)类的初始化加载顺序

一个类:静态-非静态-构造方法

继承类:父类静态-子类静态-父类非静态-父类构造方法-子类非静态-子类构造方法

(20)如果一个类没有父类、系统会自动让此类默认继承Object类(Java所有类的顶级父类)

(21)父子类型转换:

子类转换父类、向上转型、没问题

父类转换子类、向下转型、需要强制类型

(22)包的定义和导入

定义:package 包名

导入:import 包名.类名

本包的类可以直接使用、外包的类必须导入才能使用。

(23)final关键字

修饰变量、不能更改

修饰方法、不能被重写

修饰类、不能被继承

(24)this关键字和super关键字

this关键字:表示当前类的对象

super关键字:表示父类的引用

(25)可见性修饰符:4个范围3个关键字

private 私有 当前类

                默认          当前类 + 本包

protected 保护 当前类 + 本包 + 外包子类

public      公共          所有

(26)接口概念:

被interface修饰叫做接口。理解:表示一个标志和规范。是设计功能的工具。

成员变量特点固定默认:public static final

成员方法特点固定默认:public abstract

构造方法:没有构造方法、不能创建对象。

(27)类和接口的关系:

类通过implements实现关键字实现接口。类和接口的关系就是实现关系。

接口:负责设计

类:负责实现。

(28)Java是面向对象的语言、面向对象语言有3个特征:【封装、继承、多态】

封装:类把相关的变量和方法封装到类内部。可见性修饰符。

继承:父类有的子类都有。

多态(多种形态、2种):类内部多态(重载)、继承中多态(重写)。

重载:在一个类中、多个方法、方法名一样、参数不一样。

重写:在父类和子类中、2个方法、方法名和参数都一样、Java会自动调用子类的方法。

(29)具体类、抽象类、接口三者横向比较

具体类 抽象类 接口

关键字 class                          abstract class            interface

成员变量                    都可以                        都可以                        public static final

成员方法                    全部实现                    部分实现                    public abstract

构造方法                    有                                有                                没有

创建对象                    能                                不能                            不能

意图目的                    实现                            设计(继承)                  设计

(30)Java文件和Java类的关系

一个Java文件可以写多个Java类、但是文件名必须和public修饰的类名一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值