Head First Java 第二版

  • 不管你的程序有多大,一定都会有一个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()不一定等值。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多元高斯分布

下面我们来看一下多元高斯分布&#xff0c;叫做 multivariative 高斯分布&#xff0c;也就是目前的情况是向量的形式&#xff0c;也就是说我的 x 它是一个向量&#xff0c;那这个情况下我们的高斯分布应该怎么去表示&#xff1f;我们这里面重点还是来看一下它的一个表示的方法&…

golang 2018,go 1.19安装Gin

GOPROXYhttps://mirrors.aliyun.com/goproxy/ 一致提示URL不能有点&#xff0c;给我整郁闷了&#xff0c;换了这个地址好了 但是一致提示zip的包问题&#xff0c;最后还是不行又换回七牛 NEWBEE&#xff01; [GIN-debug] Environment variable PORT is undefined. Using por…

BIM、建筑机器人、隧道工程施工关键技术

一、BIM简介 &#xff08;一&#xff09;BIM概念 BIM&#xff08;Building Information Modeling&#xff09;&#xff0c;建筑信息模型。该技术通过数字化手段&#xff0c;在计算机中建立虚拟建筑&#xff0c;该虚拟建筑提供从单一到完整、包含逻辑关系的建筑信息库。信息库…

ZZ308 物联网应用与服务赛题第B套

2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 &#xff08;B卷&#xff09; 赛位号&#xff1a;______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等&#xff1b; 2.竞赛任务中所使用的…

Android codec2 视频框架 之输入buffer

文章目录 输入端的内存管理输入数据包buffer结构体的转换 主要的流程如上&#xff0c; 申请内存在CCodecBufferChannel&#xff0c;申请之后回调到MediaCodec。然后应用从MediaCodec获取 将解码数据放到buffer中&#xff0c;CCodecBufferChannel在将这块buffer 送到componet模块…

IS-LM模型:从失衡到均衡的模拟

IS-LM模型&#xff1a;从失衡到均衡的模拟 文章目录 IS-LM模型&#xff1a;从失衡到均衡的模拟[toc] 1 I S − L M 1 IS-LM 1IS−LM模型2 数值模拟2.1 长期均衡解2.2 政府部门引入2.3 价格水平影响2.4 随机扰动因素 1 I S − L M 1 IS-LM 1IS−LM模型 I S − L M IS-LM IS−LM是…

51单片机汇编-点亮一个led

文章目录 前言1.打开IDE2.设置编辑器3.设置输出4. 原理图5.编写代码6 编译7.下载8.其它代码1.LED闪烁2.跑马灯 前言 51单片机基础 51汇编实战 本章主要介绍打开一个led,具体采用51汇编 1.打开IDE 选择STC89C52RC 后缀是.asm 2.设置编辑器 3.设置输出 4. 原理图 5.编写代码 …

HR人才测评,采用线上测评做春招秋招

从人力资源管理的工作&#xff0c;已经有好些年了&#xff0c;我只想说这不是一个有创意和创造性的工作&#xff0c;因为大部分时间我都在从事数据方面的工作。关于公司内部的文案工作先且不说&#xff0c;这里分享下我做招聘工作的过程。 每年春秋两季的校招&#xff0c;算是…

通过51单片机控制SG90舵机按角度正反转转动

一、前言 本文介绍如何通过51单片机控制SG90舵机实现角度的正反转转动。SG90舵机是一种常用的微型舵机&#xff0c;具有体积小、重量轻、结构简单等特点&#xff0c;被广泛应用于机器人、遥控模型和各种自动控制系统中。 使用51单片机&#xff08;STC89C52&#xff09;作为控…

5-爬虫-打码平台、打码平台自动登录打码平台、selenium爬取京东商品信息、scrapy介绍安装、scrapy目录结构

1 打码平台 1.1 案例 2 打码平台自动登录打码平台 3 selenium爬取京东商品信息 4 scrapy介绍安装 5 scrapy目录结构 1 打码平台 # 1 登录某些网站&#xff0c;会有验证码---》想自动破解-数字字母&#xff1a;python模块&#xff1a;ddddocr-计算题&#xff0c;成语题&#xf…

CSS3 边框、圆角、背景

CSS3是最新的CSS标准。CSS3被拆分为“模块”。一些最重要的CSS3模块如下&#xff1a;选择器、盒模型、背景和边框、文字特效、2D/3D转换、动画、多列布局、用户界面。 一、CSS3边框&#xff1a; 用CSS3&#xff0c;可以创建圆角边框、添加阴影框&#xff0c;并作为边界的形象而…

【单目测距】单目相机测距(三)

文章目录 一、前言二、测距代码2.1、地面有坡度2.2、python代码2.2.1、旋转矩阵转角度2.2.2、角度转旋转矩阵2.2.3、三维旋转原理 (Rotation 原理)2.2.4、完整代码 2.3、c 代码 一、前言 上篇博客【单目测距】单目相机测距&#xff08;二&#xff09; 有讲到当相机不是理想状态…

17.复制字符串 ,包括\0

#include<stdio.h> #include <cstring>int main(){int len1,len2;char s1[44];char s2[33];scanf("%s",s1);scanf("%s",s2);len1strlen(s1)1;printf("先s1的字符长度为&#xff1a;%d\n",len1) ;strcpy(s1,s2) ;printf("复制字…

前端AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(三)

知者乐水&#xff0c;仁者乐山。 XMLHttpRequest AJAX原理 - XMLHttpRequest 前面与服务器交互使用的不是axios吗&#xff1f; ajax并不等于axios 我们使用的axios的内部&#xff0c;实际上对XHR对象/原理 的封装 为什么还要学习ajax&#xff1f; ①在一些静态网站项目中…

UPLOAD-LABS1

less1 (js验证) 我们上传PHP的发现不可以&#xff0c;只能是jpg&#xff0c;png&#xff0c;gif&#xff08;白名单限制了&#xff09; 我们可以直接去修改限制 在查看器中看到使用了onsubmit这个函数&#xff0c;触发了鼠标的单击事件&#xff0c;在表单提交后马上调用了re…

【Android】Dagger2 框架设计理念和使用方式详解

文章目录 Dagger 框架作用基本使用方法引入依赖创建 Object创建 Module创建 Component向 Activity 注入对象 Component 内部单例全局单例自定义 Scope关于单例作用域的理解注入多种同类型对象Component 依赖Component 继承传递 Activity Dagger 框架作用 这里&#xff0c;我们…

verilog 每日一练- 移位寄存器

module shift_1x64 (clk, shift,sr_in,sr_out,);input clk, shift;input sr_in;output sr_out;reg [63:0] sr;always(posedge clk)beginif (shift 1b1)beginsr[63:1] < sr[62:0];sr[0] < sr_in;endendassign sr_out sr[63];endmodule 这个Verilog模块 shift_1x64 实现了…

Leetcode—226.翻转二叉树【简单】

2023每日刷题&#xff08;二十四&#xff09; Leetcode—226.翻转二叉树 实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* …

分享vmware和Oracle VM VirtualBox虚拟机的区别,简述哪一个更适合我?

VMware和Oracle VM VirtualBox虚拟机的区别主要体现在以下几个方面&#xff1a; 首先两种软件的安装使用教程如下&#xff1a; 1&#xff1a;VMware ESXI 安装使用教程 2&#xff1a;Oracle VM VirtualBox安装使用教程 商业模式&#xff1a;VMware是一家商业公司&#xff0c;而…

npm 下载包失败解决方案

1.【问题描述】使用 npm 下载vue项目依赖包时失败&#xff0c;版本不一致。 【解决方法】使用 npm install --force npm install --force 是一个命令行指令&#xff0c;用于在 Node.js 环境中使用 npm&#xff08;Node Package Manager&#xff09;安装包或模块。–force 参数表…