Head First Java 第二版

news2024/11/25 0:44:18
  • 不管你的程序有多大,一定都会有一个main()来作为程序的起点。
  • Java是强类型语言。
  • float f=23.5f    如果不加上f,就会被Java当做double处理。
  • 对于任意一个Java虚拟机来说,所有的引用大小都一样,但是不同的Java虚拟机可能会以不同的方式来表示引用。因此某个Java虚拟机的引用大小可能会大于或小于另一个Java虚拟机的引用。
  • Java是通过值传递的,也就是说通过拷贝传递。方法没办法改变调用方法所传入的参数。
  • 方法可以返回会被隐含转成声明类型的其他类型值。例如说用byte当做int类型的返回。但若声明的类型容器小于想要返回的类型时,必须作明确的转换。
  • 局部变量没有默认值。实例变量有默认值,例如0/0.0/false,引用的默认值是null。
  • 虽然ArrayList只能携带对象而不是primitive主数据类型,但编译器能够自动地将primitive主数据类型包装成Object以存放到ArrayList中。
  • 程序不会因为import而变大或变小。
  • 有三种方法可以防止类被继承:(1)存取控制。非公有的类智能被同一个包的类作出子类。(2)使用final修饰符。(3)构造函数为private。
  • 方法覆盖的要求:相同的参数和返回类型。存取权限必须相同或者更为开放。
  • 方法重载的要求:参数不同。
  • 抽象的方法必须存在于抽象类中。抽象方法的意义是就算无法实现出方法的内容,但还是可以定义出一组子型共同的协议。
  • 抽象类可以带有抽象和非抽象方法。
  • 任何从ArrayList<Object>取出的东西都会被当做Object类型的引用而不管它原来是什么。比如ArrayList<动物>放进去猫、狗,取出来的只能是动物,只能执行动物有的方法,不能执行猫和狗独有的方法。
  • 接口是100%纯天然抽象类。
  • 当调用一个方法时,该方法会放在调用栈的栈顶。
  • 方法调用和局部变量在栈里;所有对象都在堆里。
  • 如果没构造函数,编辑器会自动给加一个无参构造函数;构造函数没有返回值;构造函数不会被继承。
  • 如果自己写了一个有参数的构造函数,那么一定要再写一个没有参数的构造函数。
  • 如果一个类有一个以上构造函数,则参数一定要不一样,包括的参数的顺序与类型。
  • 在创建子类对象时,构造函数在执行的时候,第一件事就是去执行它的父类的构造函数,这会连锁反应到Object这个类为止,所有父类的构造函数都会被执行。
  • 调用父类的构造函数的唯一方式是:super()。super()的调用必须是构造函数的第一个语句。
  • 如果在构造函数中调用了this(),那么this()也必须是构造函数的第一个语句。
  • 在构造函数中super()和this()不能同时出现。
  • final的变相不能改变它的值。final的方法不能被覆盖。final的类不能被继承。final的变量要在声明的时候就赋值。
  • Java中唯一有重载的运算符是“+”,例如 String a = "" + d;
  • 异常处理规则:
  • 当有catch或者finally时,必须要有try;有try的时候,必须要有catch或者finally;如果只有try和finally,则方法必须要声明异常(void go() throws Exception...)。
  • 类被序列化需要implement Serializable。最好在类里加上serialVersionUID。
  • 如果实力变量不希望被序列化,则用transient标记。例如transient String aaa;
  • 使用泛型的方式:
  1. public class ArrayList<E> extends AbstractList<E>...{}
  2. public <T extends Animal> void takeThing(ArrayList<T> list),注意本行的extends后面可以接类和接口都行。
  3. public static <T extends Comparable<? super T>> void sort(List<T> list)
  •  Collection API: 
  • 对象相等 

    如果两个对象相等,则hashcode必须相等。

    如果两个对象相等,则a.equals(b),而且b.equals(a)。

    如果两个对象的hashcode值相等,但他们不一定相等。

    如果覆盖了equals(),则也要覆盖hashcode()。

    hashCode()的默认行为是对在heap上的对象产生独特的值。如果没有override过hashCode(),则该class的两个对象怎么样都不会被认为是相同的。

    equals()的默认行为是执行==,也就是说去测试两个引用是否对上heap上同一个对象。如果equals()没有被覆盖,两个对象永远都不会被视为相同。因为不同的对象有不同的字节组合。

    a.equals(b)必须与a.hashCode()==b.hashCode()等值。

    但a.hashCode()==b.hashCode()时,a.equals()不一定等值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1189901.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是前台、中台、和后台?

前台&#xff1a;即包括与用户直接交互的界面&#xff0c;如&#xff1a;web页、app&#xff1b;也包括服务端各种实时响应用户请求的业务逻辑&#xff0c;如&#xff1a;商品查询、订单系统等。 后台&#xff1a;面向内部运营人员的管理系统、配置系统&#xff0c;如&#xf…

2023.11.9 IDEA 配置 Lombok

目录 什么是 Lombok 如何使用 Lombok Lombok 的 Data 注解 什么是 Lombok Lombok 是一个 Java 库&#xff0c;能自动插入编译器并构建工具&#xff0c;简化 Java 开发它通过注解实现这一目的&#xff0c;可用来帮助开发人员消除 Java 的冗长代码&#xff0c;尤其是对于简单…

通付盾Web3专题 | SharkTeam:Web3安全实践与创新

在Web3领域&#xff0c;安全漏洞、黑客攻击已愈发成为用户和投资者重点关注的领域。如何保障加密资产的安全&#xff0c;Web3黑暗森林中又有哪些新的攻击模式产生&#xff0c;SharkTeam将从一线进行分享和讨论。 我们先来看一下2023年1月到8月的安全事件数量和损失的数据统计。…

【Python自学笔记】python os.getcwd文件目录找不对关于“None”在VSCode里面的奇葩报错

写小组项目的时候需要按照路径读入数据表&#xff0c;数据库和图片列表显示到html&#xff0c;按ChatGPT的答案写了python os.getcwd()&#xff0c;结果迁移到同组同学的电脑上总是报错。 经过一番查询&#xff0c;在CSDN上发现一个完美解决问题的好帖&#xff0c;特此存下链接…

Java数据的基本(原始)类型和引用类型的特点差别

本文作为“Java数据类型”一文的补充https://blog.csdn.net/cnds123/article/details/110517272 Java的数据类型可以分为基本类型&#xff08;primitive types&#xff09;和引用类型&#xff08;reference types&#xff09;两大类。在实际编程中&#xff0c;要根据需求选择合…

React路由与导航

目录 前言&#xff1a; 什么是React路由&#xff1f; 导航和页面切换 路由参数和动态路由 路由守卫和权限控制 总结 前言&#xff1a; React是一个流行的JavaScript库&#xff0c;用于构建用户界面。在使用React开发Web应用程序时&#xff0c;路由和导航是必不可少的功能…

理解MySQL的日志 Redo、Undo

理解MySQL的Redo日志和Undo日志 1、MySQL 日志文件解决的问题2、redo 日志2.1、redo log 的组成2.2、redo log 刷盘策略2.3、MySQL 的 redo log解决了哪些问题 3、undo 日志3.1、undo 日志作用3.2、undo log 的类型3.3、undo log 的生命周期3.4、事务回滚相关的几个隐藏字段 1、…

【Mysql】where 条件子句之逻辑运算符

逻辑运算符 and &&or ||not ! student表 一.查询分数在80 - 90之间 and写法 &&写法 区间&#xff08;between ....and......) 二.查询分数不为88 &#xff01;写法 not写法 三.查询分数大于88或者年龄小于22 满足其中一个条件即可 or写法 ||写法

操作系统 day08(进程通信)

进程通信的概念 进程间通信是指两个进程之间产生数据交互进程通信需要操作系统的支持&#xff0c;由于进程是分配系统资源&#xff08;包括内存地址&#xff09;的单位&#xff0c;因此各进程拥有的内存地址空间相互独立。同时为了保证安全&#xff0c;一个进程不能直接访问另…

django安装和rest接口写法

django安装 确保已经安装了Python。命令行中输入python --version来检查Python的版本。 安装Django。你可以在命令行中使用以下命令来安装Django&#xff1a; pip install django创建一个新的Django项目。在命令行中&#xff0c;进入你想要创建项目的目录&#xff0c;并运行以…

SpringCloud-Gateway无法使用Feign服务(2021.X版本)

Spring Cloud Gateway 2021.x版本&#xff0c;无法使用Feign调用其他服务接口。 问题原因&#xff1a; 在官网的 issue 里面找到了相关的问题。 How to call another micro-service on GatewayFilterFactory ? Issue #1090 spring-cloud/spring-cloud-gateway GitHubHel…

python编程复习系列——week2(Input Output (2))

文章目录 一、多行代码语句二、Escape序列三、字符串格式四、数值运算课后作业 一、多行代码语句 &#x1f95e;使用反斜杠\来表示在下一行中继续使用一条语句。 subject_code "CSCI111" subject_mark 80 subject_grade "D" result "Subject re…

SOLIDWORKS --电磁仿真篇

什么是 SIMULIA? 基于3DEXPERIENCE平台的品牌 多学科多领域的协同仿真与分析优化 三大核心仿真领域 结构仿真 流体仿真 SIMULIA电磁仿真是什么? 完备的求解技术&#xff0c;支持从静场、低频到高频、光波的电磁仿真&#xff0c;支持全波仿真、混合仿真、多物理场仿真和场路…

支持C#的开源免费、新手友好的数据结构与算法入门教程 - Hello算法

前言 前段时间完成了C#经典十大排序算法&#xff08;完结&#xff09;然后有很多小伙伴问想要系统化的学习数据结构和算法&#xff0c;不知道该怎么入门&#xff0c;有无好的教程推荐的。今天给大家推荐一个支持C#的开源免费、新手友好的数据结构与算法入门教程&#xff1a;He…

Python语言:经典例题分析讲解

题1&#xff1a; 通过观察我们可以得出以下结论&#xff1a; 代码实现&#xff1a; """ &#xff08;3&#xff09;输入整数n&#xff0c;输出n行的字符图案。如n5时输出以下图案&#xff1a;* *** ***** ******* *********""""" for…

多测师肖sir_高级金牌讲师_ui自动化po框架

ui自动化po框架 一、po框架 1、基本介绍&#xff08;1&#xff09;po是page object 的缩写 &#xff08;2&#xff09;业务流程与页面元素操作分类的模式&#xff0c; &#xff08;3&#xff09;提高测试用例的可维护性、可读性 二、自动化测试框架分层如下&#xff1a; 结构…

MATLAB|不给糖果就捣蛋

目录 扫一扫关注公众号 效果图 代码 绘制南瓜 绘制无脸男小鬼 其中绘制风车代码&#xff1a; 其中 EllipsePlotter类函数代码如下 属性 (properties) 方法 (methods) 扫一扫关注公众号 效果图 代码 绘制南瓜 clc;clear;close all; [X,Y,Z]sphere(200); R1(-(1-mod(0:…

Flink(三)【运行时架构】

前言 今天学习 Flink 的一些原理性的东西&#xff0c;比较偏概念&#xff0c;但是十分重要。有人觉得上来框框敲代码才能学到东西&#xff0c;那是狗屁不通的道理&#xff08;虽然我以前也这么认为&#xff09;。个人认为&#xff0c;学习 JavaEE那些框架&#xff0c;你上来就敲…

​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第1章-绪论-思维导图】 课本里章节里所有蓝色字体的思维导图

049-第三代软件开发-软件部署脚本(一)

第三代软件开发-软件部署脚本(一) 文章目录 第三代软件开发-软件部署脚本(一)项目介绍软件部署脚本(一)其他方式 关键字&#xff1a; Qt、 Qml、 bash、 shell、 脚本 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Meta-Object…