分享好友 最新动态首页 最新动态分类 切换频道
【java】Java基础学习总结(b站黑马程序员课程)
2024-12-26 13:52

Mark-boker/JavaBasic (github.com)自身学习代码(详细代码请关注黑马程序员领取

【java】Java基础学习总结(b站黑马程序员课程)

深入理解 Java 实例化_实例化是什么意思_南淮北安的博客-CSDN博客

实例化的特点
1.简单地说,实例化就是new对象。
2.new的过程就是实例化的过程,如 new Cat();就是对Cat类的实例化(在堆内存的开辟空间进行记录)。
3.实例化对象的语法:类名 引用变量名(通常记录在堆内存的开辟的地址= new 构造器名() ;
4.访问成员属性或成员方法一般语法是:引用成员变量名.成员名

Student st;表示在栈中声明了一个名为st的引用变量
new Student();表示对学生类进行了实例化,即在堆中新建了一个对象,并调用构造方法进行初始化。
    括号中之所以有参数,是因为构造方法有参,写进的参数将传递给构造方法中的形参。
    如果想括号里无参,那么将无参构造也写上。因为如果没写构造器,那么编译器会默认创建一个无参。 倘若写了有参,编译器就不再默认创建无参了,需手动添加。
    构造方法是一个比较特殊的方法,通过构造方法可以完成对象的创建,以及实例变量的初始化。换句话说:构造方法是用来创建对象,并且同时给对象的属性赋值。注意:实例变量没有手动赋值的时候,系统会赋默认值。成员变量和方法需要对象去调用
java是一门面向对象的语言,而面向对象的原则,就是要隐藏细节,把该封装的东西封装到一个合适的类里面,
一个合格的封装类,一般情况下它不会让你去直接访问他的属性(成员变量,而是让你去调用他的方法set和get。
比如获取或者修改密码时候需要验证,就可以在set方法里添加验证代码,看看密码是否符合修改规范
ptg插件可以自动补全javabean类

jdk和jre的区别? - 知乎 (zhihu.com)

StringBuilder可以非常有效率去进行对字符串处理(创建的内容是可变的,方便字符串拼接和反转,
大量普通字符串拼接会产生许多无用的字符串影响效率
StringBuilder(初始容量16,扩容2*16+2,不够就为实际容量)是java在底层做了处理,打印的对象不是地址属性值,toString返回类名和引用地址,
 toString将StringBuffer转换成String

Java中String类的值在创建后不能修改

第二次的a会在方法区的字符串常量池中重新分配一个内存存放“Hello World”,并存放其内 存地址中的Hello不会发生任何变化。 

java集合超详解_java集合使用-CSDN博客

 
 
 
 
 

 注意事项

static静态方法,静态变量随着类加载而加载,优先于对象,运行代码对象还没在堆内存开辟空间 ,静态变量会在堆中单独创建一个静态区(地址和new出来的对象地址不一样是类中全体对象共享的

static静态方法没有this关键字,静态方法只能访问静态(不属于对象,是属于类的,随着类加载而加载,提前初始化,非静态方法(对象有关,需要实例化)可以访问所有

静态方法不能调用非静态变量(因为还没new实例出来,逻辑顺序,如果静态方法里面有非静态方法或者变量,它无法识别,因为没有new实例化,非静态方法变量不存在堆内存中

java静态代码块、静态变量、普通代码块和构造方法执行顺序-CSDN博客

当类与类之间,存在相同共性的内容,并且满足子类是父类一种(逻辑,就考虑继承优化代码 java支持单继承(1子只能继承1父,不支持多继承,支持多层继承,没有继承的类默认继承Object类

构造方法不能被继承(构造方法名字必须和类一样
继承和调用是两种概念,私有父类成员变量可以继承,但是不能调用(赋值,例如上图无法赋值“钢门吹雪”,调用z.name

非私有的成员方法(虚方法)可以继承和调用(虚方法表,私有的不能继承

继承的一些特点和性质及方法重写

方法重写要注意的事项:
1.方法重写时, 方法名与形参列表必须一致。
2.方法重写时,子类的权限修饰符必须要大于或者等于父类的权限修饰符。
3.方法重写时,子类的返回值类型必须要小于或者等于父类的返回值类型。
4.方法重写时, 子类抛出的异常类型要小于或者等于父类抛出的异常类型。 Exception(最坏) RuntimeException(小坏)
5.建议重写方法尽量和父类保持一致
6.只有被添加到虚方法表中的方法才能被重写(java中静态字段和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏,直接调用是子类静态方法
多态的前提条件是(1)有继承/实现关系。
(2)有方法的重写。
(3)有父类引用指向之类对象。(Fu f =new Zi

java中多态的作用,多态的好处,以及为什么要用多态?_java为什么用多态_打代码的汤姆猫的博客-CSDN博客

 编译时查看父类有没有相应的成员变量如果有编译成功,运行时也查看父类有没有相应的成员变量如果有调用成功

 编译时查看父类有没有相应的成员方法如果有编译成功(所以子类特有方法父类没有,编译是失败的,运行时也查看子类有没有相应的成员方法如果有调用成功

java的动态绑定与静态绑定(彻底理解多态与重载)-CSDN博客

细究一下Java的动态绑定机制(非常重要)_java动态绑定机制-CSDN博客

java多态和instanceof的理解与使用_多态不用a instanceof 有什么区别_编程怪的博客-CSDN博客

49 向上造型与向下造型 - Scorpicat - 博客园 (cnblogs.com)

向上造型(转型

定义:超类的引用指向子类对象。

例如

1

 

  以上即为向上转型。

特性

  • 向上转型后的引用只能使用超类中的方法和属性。
  • 向上转型后的引用不能使用派生类中自有的方法和属性,可以使用重写父类的方法
向下造型(转型

将一个已经向上转型的引用强制向下转型,并用一个新的派生类引用接收。

注意

  • 向下转型后的引用既可以使用超类中的也可以使用它自己的类(当前派生类)中的方法和属性。
  • 向下转型后需要使用一个派生类引用来接收。
  • 如果派生类重写超类方法,派生类虚方法表中该方法会被覆盖,调取的是派生类重写后的方法

以上面的代码为前提,向下转型

1

2

3

4

5

 

详细看连接

静态代码块:执行优先级高于非静态的初始化块,它会在类初始化的时候执行一次,执行完成便销毁,它仅能初始化类变量,即static修饰的数据成员。静态代码块写法,static{  }

静态代码块的执行顺序:静态代码块----->非静态代码块-------->构造函数

 适配器

  实现类需要继承就让中间类继承父类,实现类就可以间接继承了

 匿名内部类

 后面还有Lambda 表达式去简化匿名内部类

Java统计代码的执行时间的6种方法_java执行时间_YouluBank的博客-CSDN博客

1.Object

jdk的本身附带一些标准类库重写Object中toString方法,所以创建的一些对象和集合直接可以输出内容而不是地址值,一些对象也会隐藏toString方法(看源码

 2.克隆

  1. 首先实体类需要实现Cloneable接口
  2. 重写clone方法,将protected改为public,将返回类型改为当前实体类的类型
  3. 如果实体类中的属性不全是基础数据类型和String,那么对该属性类也要进行同样的操作让它支持深克隆

any-rule插件可以快速生成所需要的正则表达式

爬虫和正则表达式结合爬取筛选出有用内容

Java基础之int和Integer有什么区别_一枚-狗子的博客-CSDN博客

【详解】JAVA集合只能存放引用类型的的数据,不能存放基本数据类型_集合只能存储引用数据类型_糖醋小熊猫的博客-CSDN博客

 Iterator和ListIterator之间有什么区别?_xiangyuenacha的博客-CSDN博客

简述ArrayList集合和数组的区别?_紫乾2014的博客-CSDN博客

集合进阶07-LinkedList和迭代器的源码分析_哔哩哔哩_bilibili

双向链表源码

节点格式 节点头地址值(记录上一个节点地址) 元素 节点尾地址值(记录下一个节点地址

创建新节点首先把上一个节点(last尾节点)地址值赋值给l,l作为下一个节点的头地址值(记录上一个节点地址,e为添加元素,null为尾地址值,再把本节点地址值赋值给last做为尾节点,再判断把本节点地址值赋值给上一节点l.next(上一节点尾地址值)做连接

Java 泛型 | 菜鸟教程 (runoob.com)

平衡二叉树的左旋右旋详解 看不懂你打我_You Y.G.的博客-CSDN博客

集合进阶-11数据结构(平衡二叉树旋转机制)_哔哩哔哩_bilibili

红黑树 

集合进阶-12-数据结构(红黑树、红黑规则、添加节点处理方案详解)_哔哩哔哩_bilibili

旋转比较消耗性能,单纯修改颜色的增删查改效率会更高

集合进阶-13-HashSet、LinkedHashSet详解_哔哩哔哩_bilibili

如果没有重写,自动哈希计算的是引用变量地址值,因为对象地址值不同,所以计算出的值是不同的,而重写后就可以计算对象内的属性值

硬核问题,为什么重写equals()就要重写hashCode()? - 知乎 (zhihu.com)

fn+alt+insert键快捷可以自动重写hashCode方法

自定义排序同时创建使用方式二优先

compareTo方法返回

为什么返回值为 0 ,只是存取一个元素,返回 -1 就会倒序存储,返回 1 就会怎么存怎么取呢

因为TreeSet 底层是一个二叉树(红黑树就是二叉树的升级版嘛,没插入一个元素就会调用 comapreTo() 方法做比较,就会按照我们上面提到的插入规则来

返回值如果写死 0,认为是相同的元素,所以 TreeSet 中不用插入新元素,用原来的即可

返回值如果写死 1,认为是大的元素,所以会插入到已有元素的右边,读取的时候,就是正序排列的

返回值如果写死 -1,认为是小的元素,所以会插入到已有元素的左边,读取的时候,就是倒序排列的

使用TreeSet,关于重写compareTo()方法 升序降序问题(适合Java小白)_重写compareto方法排序原理_张小三lc的博客-CSDN博客

最新文章
3D5月周四孤号走势图近100期带连线
功能类福彩3D显示遗漏:显示/隐藏遗漏值,遗漏值是指自上期开出到本期间隔的期数。福彩3D遗漏分层:是将当前遗漏值用柱状图形标注。福彩3D分段线:是每五期使用分隔线,使横向导航更加清晰。福彩3D显示断区:在分区走势中使用,将开出0个号
2023年保险公司述职报告范文(精选10篇)
【#报告# #2023年保险公司述职报告范文(精选10篇)#】述职报告是总结以前的工作经验,吸取以前的失败教训,强化自己的职责观念。这对于更好地探索本职工作的规律,促进领导干部自我认识、自我字习白我提高有着重要的作用。以下是®无
12款PDF编辑器免费版大比拼:职场人的实用体验分享
该说不说,处理PDF文件已经是工作中的家常便饭。虽然很多人都知道要怎么阅读PDF文档,但是要怎么编辑PDF文档呢?没错!就是要PDF编辑器。但你知道吗?选择合适的PDF编辑器,能让你的工作效率翻倍。今天,我将从一个职场人的角度,分享我使
2021最新零基础入门—网站建站教程(新手必备)
相信很多新用户会有这样的疑惑,我要做个网站,到底要使用什么产品,如何能快速完成网站建站呢?搭建网站有两种选择,一种是直接购买建站模板,另一种则是自行建站。两类建站方式对比如下: 建
2023年度热门减肥茶榜单:权威推荐与消费者好评Top排行
随着现代生活节奏的加快和饮食习惯的变化肥胖疑惑逐渐成为困扰许多人的健康难题。减肥茶作为一种便捷、相对温和的减肥办法在市场上受到了广泛的关注。它通过促进新陈代谢、帮助消化以及减少体内水分滞留等途径达到减轻体重的效果。市场上的
DXOMARK无评分!但他仍是摄影旗舰新标杆?Vivo X100 Ultra 灭霸线下摄影体验报告
曾几何时,作为影像领域的专业评测机构DXOMARK(以下简称DXO),他们的分数排名是反应手机摄影能力的重要参考之一,DXO也曾被无数手机品牌视若珍宝,其评测的数据也时常出现在各大旗舰机型发布会上,以作为可量化的手机影像实力的重要指标
36漫画官网正版v2.2.43
36官网正版是一款专为漫画爱好者打造的免费漫画软件,集海量漫画资源、实时更新、高清画质、智能推荐于一体。该软件提供了包括国漫、日漫、韩漫、欧美漫等在内的多种类型漫画,满足了用户多样化的阅读需求。界面设计简洁明了,操作流畅,无
Cursor+云开发,让小姐姐轻松驾驭微信小程序开发的最佳拍档
本故事讲述了如何不写一行代码,使用 Cursor + 腾讯云云开发这一最佳组合,来快速开发一个有前有后的 TodoList 微信小程序。麻雀虽小,五脏俱全,快来瞧瞧吧! “在这个 AI 内容生成泛滥的时代,
GB/T 30835标准锂离子电池用炭复合磷酸铁锂正极材料
2016年08月02日罗卓文100ROHS认证、CE认证、FCC认证、CB认证、FDA认证、UL认证、CCC认证、GS认证、MIC认证、EK认证、PSE认证、E-MARK 认证等国际安全测试认证.国内检测认证服务:CCC认证,CQC认证,节能认证,能效认证,型号核准认证,电信
2025长江大学保研要求,整理好了!
2025长江大学保研要求,一般包括推荐对象、基本条件等,为了方便大家查看相关的信息,小编将相关内容整理到下面了,可以跟着小编一起往下看。一、2025长江大学保研要求1、推荐对象普通全日制本科2025届毕业生,不含定向、专升本以及第二学
相关文章
推荐文章
发表评论
0评