暂时未有相关云产品技术能力~
暂无个人介绍
🌿 字符串的底层是 char[],但是 char 数组和字符串不能等价。char 数组是 char 数组,字符串是字符串。 🌿 C 语言中是可以把 char 数组和字符串等价的 ✏️ 所有的 字符串字面量(如:"林哥")都是 String 类的实例 ✏️ String 对象创建完毕后,String 对象的字符内容是不可以修改的 🌿 String 对象的引用变量的指向是可以修改的
✏️ java.lang.Math 类提供了常见的数学计算功能 ✏️ Math 类被 final 修饰(不能被继承) ✏️ Math 类不能被实例化
整数类型(Byte、Short、Integer、Long) 的包装类的valueOf方法的底层会有缓存的操作(缓存常用的数字的包装类型)
📝 写代码会遇到各种各样的错误: ✏️ ① 语法错误(会导致编译失败,程序无法正常运行) ✏️ ② 逻辑错误(比如需要进行加法操作时,不小心写成了减法操作) ✏️ ③ 运行时错误(程序运行过程中产生的意外,会导致程序终止运行)
📄 注解(Annotation)也被称为元数据(Metadata),用于解释包、类、方法、属性、构造器、局部变量等数据的信息 📄 和注释一样,注解不影响程序的逻辑。当注解可以被编译或运行(相当于嵌入在代码中的补充信息) 📄 在 JavaSE 中,注解的作用非常简单(例如:标记过时的功能、忽略警告等) 📄 在 JavaEE 中,注解非常非常得重要。在 JavaEE 中,注解占据重要地位(可用于配置应用程序的任何切面,代替 Java EE 旧版中所遗留的繁冗代码和 XML 配置等) 📄 软件工具可以通过处理注解信息生成 Java 代码、生成 XML 文件
📖 如果一个变量的取值只可能是固定的几个(如:季节),可以考虑使用枚举类型 📖 枚举由一组预定义的常量构成
🌻 嵌套类、内部类、局部类等是 Java 面向对象中的难点,但好好研究清楚感觉也不是特别难。博主再次学习这部分内容,以次巩固知识。 🌻 博主其他介绍相关内容的文章:嵌套类、内部类、静态嵌套类... 🌻 博主以官方教程为基础开始学习,其中的概念都是以官方教程为主,这样学习起来比较放心。
📖 【抽象类的作用】抽取子类的公共实现(或子类方法中的公共代码)到抽象父类中,要求子类必须要单独实现的方法(或代码块)定义成抽象方法。
📋 final 类只是不能被继承,是可以实例化的 📋 ① 不是 final 类;② 有一个 final 的方法;③ 该 final 方法不能被重写(但是可以被继承)【final 方法不能被子类重写,但可以被子类使用】 能用不可改
📖 ① 构造方法私有化(不让别人有创建该类实例的权利) 📖 ② 在类的内部创建该类的唯一对象(该类实例只能有一个,且在该类中由自己创建) 📖 ③ 向外暴露一个公共的静态方法(以返回该类的唯一对象)(通过public static 静态方法向外界返回唯一的该类的对象)
📜 私有静态方法初始化类变量的好处是:如果你需要重新为类变量进行初始化的时候,私有静态方法可以被重复使用
🔖 Lambda Expression 是 Java8 开始才有的语法 🔖 函数式接口(Functional Interface):只包含1个抽象方法的接口(可以包含多个默认方法和静态方法) 📕 可以在接口上加上@FunctionalInterface注解,表示它是一个函数式接口 🔖 当匿名类实现的是函数式接口的时候,可以使用 Lambda 表达式简化代码的书写(但是匿名类和 Lambda 在作用域上还是有点区别的)
📋 匿名类和局部类一样,都只能访问 final 或有效 final 的局部变量 📋 匿名类可以直接访问外部类中的所有成员(即使被声明为 private) 📋 匿名类只有在实例相关的代码块中使用,才可直接访问外部类中的实例成员 📋 匿名类不能自定义构造方法 📋 匿名类可以有初始化块
📝 有效 final:虽然没有被final修饰,但只进行了一次赋值(若被赋值了不止一次,则不是有效 final) 📝 从 Java8 开始,如果局部变量没有被第二次赋值,则该局部变量会被认定为是【有效 final】
🌻 【==】 ① 应用于基本类型的时候,是判断值是否相等 ② 应用于引用类型的时候,是判断对象的地址值是否相等(即判断两个对象的引用指向的是否是同一个对象)
🌼 ① 当在类 ClassOne 的 test 方法的参数列表的第一个参数的前面增加一个参数 (ClassOne classOne)的时候,你会看到 main 方法中 classOne.test(1, 2); 语句的报错(如下图)。这一报错非常容易理解,ClassOne 类中的 test 方法需要3个参数,而调用 test 方法的时候只传入了两个参数,不报错才怪😏。
初学 Java 的时候,博主觉得多态非常伤脑筋。今天这篇文章将通过官方教程、韩顺平老师、李明杰老师的讲解来学习多态。博主通过他们的视频来学习,但也有自己的想法,并不是照抄 PPT 哦!OK!Let's study!😊 Java 有三大特性:封装、继承和多态(Polymorphism)
🌾 重载的方法通过传递给方法的参数的数量和类型来区分。 🌾 重载:① 方法名相同,参数类型或参数数量不同;② 重载与返回值类型、参数名称无关
🍀 ① 加载类信息: 会先加载当前类的父类的类信息(包括 Object 基类) 🍀 ② Son 对象中会拥有其所有父类的属性: 父类属性和子类属性名字一样是可以的 🍀 ③ 访问属性的时候:先看当前类中是否有该属性?若有,直接访问;⚡ 若没有,查看直接父类是否有该属性,并且该属性是否可访问?若有并且属性没有被 private 修饰,可访问直接父类的属性;⚡ 若有但属性被 private 修饰,直接报错;⚡ 若没有,继续查找父类的父类是否有该属性,并且是否可访问 ...【① 看自己有没有,有就直接用;若自己没有,就看父亲有没有,若父亲没有,就看爷爷有没有,... 一直向上找,直达找到 Obj
🍀public: 在所有类中都是可见的 🍀protected: 仅在自己的包中、自己的子类中可见 🍀package-private(没有修饰符): 仅在自己的包中可见 🍀private: 仅在自己的类中可见
✏️ 全局变量(成员变量)作用域为:整个类体 ✏️ 局部变量(除全局变量之外的变量)作用域为:它所在的代码块 ✏️ 全局变量可以不赋值,直接使用(全局变量有默认值) ✏️ 局部变量必须赋值后才能使用 ✏️ 参数的值在方法被调用的时候才有
📖 调用方法会在栈空间分配一块新的、独立的、受保护的栈空间(栈帧) 📖 方法的局部变量是独立的,不会相互受影响 📖 调用递归方法的参数必须向退出递归的条件逼近,否则会导致无限递归,进而导致 StackOverflowError(栈溢出)
在【官方教程解释类和对象】这篇文章中说到:就像现实世界的对象中有状态和行为一样,Java 编程中的对象也有【行为】,在 Java 编程中对象的行为被叫做【成员方法(简称方法)】。
原始参数(eg:int 或 double)通过 value 传递给方法。这意味着对参数值的任何更改仅存在于该方法的作用域内。当方法返回后,栈帧销毁后,参数消失后,对它们的任何更改都将无效。
① 方法被调用则栈帧创建,方法执行结束则栈帧销毁 ② 栈帧中存储了方法的局部变量信息 ③ 栈帧是分配给方法的一段栈空间
思考下面的功能: 用户输入两个数字,计算机计算后在控制台打印两个数字的和。 在上面的需求中,主要难点是:如何获取用户输入的数字?
顶尖程序设计师的心得:When you are writing code you’re writing as much for human readers as for the computer. If efficiency is important, I’ll often resort to a trick. And then I realize that will mislead a human. And you have to comment it or do something to flag that, to make it more readable. 当你写代码的时候,你写给机器
1990 年:sun 公司(Sun Microsystems)启动绿色计划(绿色计划开始着手于发展消费性电子产品 ) 1992 年:创建 oak 语言(基于 C++ 的编程语言),oak 是 Java 的前身,oak 的英文叫做橡树 1994 年:James Gosling 参加硅谷大会,演示 Java 功能,震惊世界 1995 年 5 月 23 日:Java 第1个版本发布 2009 年:甲骨文(Oracle)公司收购 sun 公司,并发布 java7 如今:java8 被用得最多