java的学习记录

 在编程中Java是一个很重要的编程语言,Java语言诞生于1991年,作为静态面向对象编程语言的代表,极好地实现了面向对象理论。在Java的学习过程中,我也有许多的体验和对代码的新认识和新理解 ,对于代码的世界充满了好奇和向往。然而,当我真正开始学习Java时,我才意识到,学习Java不仅仅是学习一门编程语言,更是一种思维方式和解决问题的能力的培养。

1.对Java的简单介绍:

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。

代码初认识

  Java语言的入门第一课就是“hello ,China”,认识中国也认识代码,“hello,China”是我们对Java语言的初始印象,但简单的“hello,China”,里面有不简单的知识点。

"hello,China"前面的System.out.println 有三种输出方式,第一种方法,直接输出,及打出“System.out.println”,第二种,打出“syso”,java 程序会自动联想出System.out.println,第三种,打出“sysout”,也同样可以联想出System.out.println。第三种快捷方式多用在第二种不起作用时使用。

 if语句的介绍

  if语句一共有三种形式,分别为简单if语句,双分支语句,多分枝if语句,

简单if语句是单一语句的,使用逻辑运算符,在表达式之间用&&连接表达式1和表达式2。第二种方式,可以省略大括号,直接在表达式后面接入单一语句。

  简单if语句代码如下:

  双分支语句 if-else,结构为if(布尔表达式){语句1;}else{语句2;}。

代码如下

在Java中,双分支通常指的是根据某个条件执行两种不同的操作或返回两种不同的结果。这种逻辑可以使用if-else语句来实现。下面是一个简单的双分支函数的示例:

代码如下:

2.java中比较容易混淆的概念解析;

在Java中,存在一些容易混淆的概念,这些概念对于初学者和经验丰富的开发者来说都可能是个挑战。以下是对这些概念的解析,并尽量以清晰、分点的方式呈现:

  1. “==”与“equals()”方法
    • “==”:是运算符,用于比较基本数据类型的值时,比较的是它们是否相等;用于比较引用数据类型时,比较的是引用是否指向内存中的同一个对象。
    • “equals()”:是Object类的方法,默认实现是比较引用是否相等(即与“==”相同)。但很多类(如String、Integer等)会重写此方法,以比较对象的内容是否相等。
  2. null与空值(如空字符串""、空列表等)
    • null与空值在编程中都有各自的含义和应用场景,以下是对它们的详细解释:

    • null值
      • 定义:在Java、C#等编程语言中,null值表示一个引用类型变量指向了空对象,即它没有分配任何值或对象。在数据库中,null值表示这个字段没有被赋值或者值是未知的。
      • 特点
        • 对于引用类型(如类、接口、数组等),null值表示该引用不指向任何对象。
        • 当一个变量值为null时,在对它进行操作时可能会出现NullPointerException等异常。
      • 示例:在Java中,如果声明了一个String类型的变量并没有初始化,那么它的默认值是null。
    • 空值
      • 定义:空值通常指代没有任何值的情况,但具体表现形式会因编程语言和上下文的不同而有所差异。例如,在数据库中,空值表示这个字段被赋了一个空的值;在Java中,空字符串("")可以看作是一种空值的表现形式。
      • 与null的区别
        • 空值通常被视为一种可接受的数据类型,不会导致运行时异常。
        • 在Java中,空字符串是一个长度为0的字符串对象,它不是null。
      • 示例:在Java中,一个String类型的变量可以被初始化为空字符串(""),这表示该变量有一个值(即一个空字符串对象),但它不是null。
    • 总结:

    • null值表示一个引用类型变量没有指向任何对象,它是对“无值”状态的一种表示,并且在使用时需要特别小心以避免空指针异常。
    • 空值是一个更宽泛的概念,它可以指代没有值的情况,但具体表现形式会因编程语言和上下文的不同而有所差异。在Java中,空字符串是一个常见的空值表现形式,它与null值不同,是一个具有特定长度(0)的字符串对象
  3. Comparable与Comparator接口
    • Comparable:位于java.lang包中,用于定义对象的自然排序方式。如果一个类实现了这个接口,那么它就可以使用Collections.sort()等方法进行排序。
    • Comparator:位于java.util包中,是一个工具类接口,允许用户定义自己的排序逻辑。这个接口经常与Collections.sort()和Arrays.sort()等方法一起使用,以实现对集合或数组的自定义排序。
    • Comparable
    • Comparator

3.Java常见bug或异常的解决方法

Java中常见的bug或异常及其解决方法可以归纳如下:

1. 编译错误(Compile Errors)

  • 类未找到(ClassNotFoundException)
    • 原因:试图加载一个不存在的类。
    • 解决方案:确保类名正确无误,且该类存在于类路径(classpath)中。
  • 语法错误(Syntax Error)
    • 原因:例如缺少分号、括号不匹配、关键字拼写错误等。
    • 解决方案:检查并修正代码中的语法错误。
  • 无法解析的符号(Unresolved Symbol)
    • 原因:引用了一个不存在的变量、方法或类。
    • 解决方案:检查引用的符号是否已正确定义,并且在当前上下文中可见。

2. 运行时错误(Runtime Errors)

  • 空指针异常(NullPointerException)
    • 原因:试图在需要对象的地方使用null。
    • 解决方案:
      1. 在使用对象之前检查其是否为null。
      2. 使用Optional等封装类来避免空指针异常。
  • 数组越界异常(ArrayIndexOutOfBoundsException)
    • 原因:试图访问数组的非法索引(小于0或大于等于数组长度)。
    • 解决方案:确保访问数组时的索引在合法范围内。
  • 类转换异常(ClassCastException)
    • 原因:试图将一个对象强制转换为不兼容的类型。
    • 解决方案:
      1. 确保在强制类型转换之前对象确实属于目标类型。
      2. 使用instanceof操作符进行检查。
  • 算术异常(ArithmeticException)
    • 原因:例如除以零等非法算术操作。
    • 解决方案:在算术操作前进行必要的检查,以避免非法操作。

3. 逻辑错误(Logical Errors)

  • 无限循环
    • 原因:循环条件永远为真,导致循环无法终止。
    • 解决方案:确保循环条件在适当的时候能够变为假,或者使用break语句跳出循环。
  • 条件判断错误
    • 原因:条件判断逻辑不正确,导致程序执行错误的分支。
    • 解决方案:修正条件判断逻辑,确保程序按预期执行。

 

以上是对Java中常见bug或异常的解决方法的简要归纳。需要注意的是,在实际开发过程中,具体的解决方法可能需要根据具体情况进行调整和优化。

4.java学习心得或经验分享等

在Java学习的过程中,我积累了一些心得和经验,这些经验对于初学者和寻求深化理解的开发者来说都是有益的。以下是我的一些分享:

  1. 打好基础
    • Java的基础非常重要,包括数据类型、变量、运算符、控制结构、面向对象编程(如类、对象、继承、封装、多态等)以及异常处理。确保你对这些概念有深入的理解,这将为你后续的学习打下坚实的基础。
  2. 动手实践
    • 学习编程的最佳方式是动手实践。不要只是阅读书籍或观看视频教程,而要编写代码,尝试解决实际问题。通过实践,你可以更深入地理解Java的特性和语法。
  3. 深入理解面向对象编程
    • 面向对象编程(OOP)是Java的核心特性之一。理解OOP的概念,如抽象、封装、继承和多态,对于编写高质量的Java代码至关重要。尝试设计并实现一些简单的类和对象,以加深对OOP的理解。
  4. 学习使用Java集合框架
    • Java集合框架提供了丰富的数据结构,如List、Set、Map等。学习如何使用这些数据结构可以大大提高你的编程效率。了解每种数据结构的特性,并选择最适合你需求的结构。
  5. 异常处理
    • Java的异常处理机制是编写健壮程序的关键。学习如何捕获和处理异常,以及如何避免在代码中抛出不必要的异常。理解异常传播和继承层次也很重要。
  6. 使用IDE
    • 集成开发环境(IDE)如IntelliJ IDEA或Eclipse可以大大提高你的编程效率。它们提供了代码自动补全、语法高亮、调试工具等功能,可以帮助你更快地编写和调试代码。
  7. 学习并发编程
    • 随着多核处理器的普及,并发编程变得越来越重要。学习Java的并发API,如线程、锁、并发集合和Future等,可以帮助你编写更高效、更可伸缩的Java应用程序。
  8. 阅读官方文档和源码
    • Java的官方文档是了解Java特性和API的最佳资源。当你遇到问题时,查阅官方文档通常会找到答案。此外,阅读一些开源项目的源码也是一个很好的学习方法,它可以帮助你了解如何在实际项目中应用Java的特性。
  9. 持续学习
    • Java是一个不断发展的语言,新的特性和API不断被添加到标准库中。保持对新技术和最佳实践的关注,持续学习和提升自己是很重要的。
  10. 参与开源项目或实际项目
    • 参与开源项目或实际项目可以让你将所学知识应用到实践中,并学习如何与其他开发者协作。这将帮助你积累宝贵的经验,并提升你的编程技能。

最后,记住学习编程是一个持续的过程,需要耐心和毅力。保持对Java的热情,不断学习和实践,你一定能够成为一名优秀的Java开发者。

  • 13
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值