0基础学Java必备的50个知识点

news2024/11/20 6:37:30

1、编写:编写的Java代码保存在以“.java”结尾的源文件中。

2、编译:使用javac.exe命令编译java源文件,生成字节码文件。

格式:javac 源文件名.java

3、运行:使用java.exe命令解释运行字节码文件。格式:java 类名

4、在一个java源文件中可以声明多个class,但是只能最多有一个类声明为public,而且被声明为public的类的类名必须与源文件名相同。

5、java关键字中所有字母都为小写

6、Java中的名称命名规范:

包名:多单词组成时所有字母都小写:xxxyyyzzz 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz

变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个 单词首字母大写:xxxYyyZzz

常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

7、字符串是属于一个类,属于引用数据类型

8、在类体内,在方法体外声明的变量称为成员变量。

9、在方法体内部声明的变量称为局部变量。局部变量除形参外,需显式初始化才能使用。(形参也是局部变量)

10、java的整型常量默认为 int 型,声明long型常量须后加‘l’或‘L’。

11、Java 的浮点型常量默认为double型,声明float型常量,须后加‘f’或‘F’。

12、Java中的所有字符都使用Unicode编码,一个字符可以存储一个字母,一个汉字,所以java中char类型是两个字节。

13、boolean类型数据只允许取值true和false,无null。不可以使用0或非 0 的整数替代false和true。Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达所操作的 boolean值,在编译之后都使用java虚拟机中的int数据类型来代替:true用1表示,false 用0表示。

14、虽然long类型是8个字节,float是4个字节,但是float类型采用科学计数法存储,所以float类型的存储范围比long类型更大。

15、自动类型转换:容量小的类型自动转换为容量大的数据类型。byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。

16、强制类型转换:将容量大的数据类型转换为容量小的数据类型,但可能造成精度降低或溢出。

17、字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。

18、计算机底层都以二进制补码的方式来存储数据。

19、正数(最高位是0)的原码、反码、补码都相同,负数(最高位是1)的补码是其反码+1。

20、赋值运算符:= += -= *= /= %=,运算的结果不会改变变量本身的数据类型。short i = i + 1;由于常量“1”默认是int型的,所以编译会报错,使用short i += 1,则做到了+1的作用,也没有改变数据类型。

21、&与&&、| 与 | | 的区别:&&、| | 具备短路功能,左边的条件成立或者不成立,右边的条件不用再判断,&、| 不管什么情况,都要把所有条件判断完。

22、位运算:位运算符操作的都是整型的数据。

(左移运算符)<< :在一定范围内,每向左移1位,相当于 * 2

(右移运算符)>> :在一定范围内,每向右移1位,相当于 / 2

23、流程控制:

顺序结构:程序从上到下执行。

分支结构:if - else、switch-case

循环结构:for、while、do-while

24、数组属于引用数据类型变量,但是数组的元素既可以是基本数据类型,也可以是引用数据类型。

25、数组的长度一旦确定就不能修改,初始化完成,长度就定了。

26、数组静态初始化:数组元素的初始化和数组元素的赋值同时进行。

例如:int a[ ] = new int [ ] { 1,2,3 };

27、数组动态初始化:数组元素的初始化和数组元素的赋值分开进行。

例如:int b[ ] = new int [5]; b[0] = 1 ;

28、数组元素的默认初始化值:

整型:0

浮点型:0.0

字符型:0或者’\u0000’,而非’0’

布尔类型:false

引用数据类型:null

29、关键字 break、continue 可以带标签使用(类似于C语言的goto语句)

break label;//结束指定标识的一层循环结构。

continue label;//结束指定标识的一层循环结构当次循环。

30、面向对象vs面向过程

面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。

面向对象:强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。

31、面向对象中两个重要的概念:

类:对一类事物的描述,是抽象的、概念上的定义

对象:是实际存在的该类事物的每个个体,因而也称为实例(instance)

32、虚拟机栈,即为平时提到的栈结构。局部变量存储在栈结构中;new出来的结构(比如:数组、对象)加载在堆空间中。

补充:对象的属性(非static的成员变量)也是加载在堆空间中。int arr [ ] = new arr [ ],以等号“=”为界,左边是局部变量存放在栈,右边是new 的机构,存放在堆中。

方法区:类的加载信息、常量池、静态域

33、“属性”与“变量”的区别:

① 在类中声明的位置的不同

属性:直接定义在类的一对{}内。

局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量。

② 关于权限修饰符的不同

属性:可以在声明属性时,指明其权限,使用权限修饰符。常用的权限修饰符:private、public、缺省、protected —>体现为封装性。

局部变量:不可以使用权限修饰符。

③ 默认初始化值的情况

属性:类的属性,根据其类型,都默认初始化值。

整型(byte、short、int、long:0)、浮点型(float、double:0.0)、字符型(char:0 (或’\u0000’))、布尔型(boolean:false)、引用数据类型(类、数组、接口:null)

局部变量:没默认初始化值。意味着,我们在调用局部变量之前,一定要显式赋值。特别地:形参在调用时,我们赋值即可。

④在内存中加载的位置

属性:加载到堆空间中 (非static)。

局部变量:加载到栈空间。

34、 如果方法没返回值,“return;”表示结束此方法的意思。

35、封装性思想具体的代码体现:

36、权限修饰符的范围:

37、4种权限都可以用来修饰类的内部结构:属性、方法、构造器、内部类。修饰类的话,只能使用:缺省、public。

38、如果没显式的定义类的构造器的话,则系统默认提供一个空参的构造器。

39、一个类中定义的多个构造器,彼此构成重载。

40、一旦我们显式的定义了类的构造器之后,系统就不再提供默认的空参构造器。

41、一个类中,至少会有一个构造器。

42、this可以理解为:当前对象或当前正在创建的对象。

43、可以显式的使用"this(形参列表)"方式,调用本类中指定的其他构造器,但是构造器中不能通过"this(形参列表)"方式调用自己(死循环)。

44、规定:"this(形参列表)“必须声明在当前构造器的首行,可以推出构造器内部,最多只能声明一个"this(形参列表)”,用来调用其他的构造器。

45、如果使用的类或接口是java.lang包下定义的,则可以省略import结构。

使用"xxx.*"方式表明可以调用xxx包下的所有结构。但是如果使用的是xxx子包下的结构,则仍需要显式导入。

46、一个类可以被多个子类继承(一个爸爸可以有多个儿子),但是一个类只能有一个父类(一个儿子只能有一个亲生爸爸)

47、子类继承父类以后有哪些不同?

一旦子类A继承父类B以后,子类A中就获取了父类B中声明的所有的属性和方法。特别的,父类中声明为private的属性或方法,子类继承父类以后,仍然是获取了父类中私的结构,只因为封装性(private权限修饰符)的影响,使得子类不能直接调用父类的结构而已。

子类继承父类以后,还可以声明自己特有的属性或方法:实现功能的拓展。

48、子类直接继承的父类,称为:直接父类。间接继承的父类称为:间接父类。子类继承父类以后,就获取了直接父类以及所有间接父类中声明的属性和方法。

49、如果没有显式的声明一个类的父类的话,则此类继承于java.lang.Object类。

50、方法的重写(override 或 overwrite)。子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作。

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

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

相关文章

Linux笔记3

目录 一、root用户1.su命令2.sudo命令 二、vi/vim编译器1.三种工作模式2.命令模式3.底线命令模式 三、用户和用户组1.用户组管理2.用户管理3.getent命令 四、权限1.查看权限控制信息2.chmod 命令3.chown 命令 五、常用快捷键1.Ctrlc2.Ctrld3.历史命令4.光标移动快捷键 一、root…

亚马逊云科技和安恒信息,发布云原生SaaS主机安全和云原生堡垒机

4月19日&#xff0c;安恒信息首次举行了以“新见未来 实现梦想”为主题的年度新品发布会。来自产业界、投资界、财经界、媒体界等多方代表共同见证了本次发布会。这也是安恒信息自成立以来&#xff0c;首次大规模、高密度地发布新品。 联合产品发布 云原生SaaS主机安全与云原…

Linux 指令(一)+完整思维导图+实图例子+深入细节+通俗易懂建议收藏

绪论 在上一章&#xff0c;我们已经将Linux环境的安装起来了&#xff0c;从本章开始&#xff0c;我们将正式的进入到Linux的学习&#xff0c;Linux的学习还是比较的枯燥无味的&#xff0c;但我们要吃得苦中苦&#xff0c;让我们一起加油&#xff0c;进大厂拿到心仪的offer&…

黑马程序员-职工管理系统实战-附加源码Git

1、管理系统需求 职工管理系统可以用来管理公司内所有员工的信息 本教程主要利用C来实现一个基于多态的职工管理系统 公司中职工分为三类&#xff1a;普通员工、经理、老板&#xff0c;显示信息时&#xff0c;需要显示职工编号、职工姓名、职工岗位、以及职责 普通员工职责…

Redis在项目实践中的问题解决方案汇总

前言 无论是在开发过程中还是在准备跑路的面试过程中&#xff0c;和Redis相关的话题&#xff0c;难免会涉及到四个特殊场景&#xff1a;缓存穿透、缓存雪崩、缓存击穿以及数据一致性。 虽然在作为服务缓存层的时候Redis确实能极大减少服务端的请求压力&#xff0c;但是如果在…

企业组织管理神器:红海云可视化组织管理功能深度解析

在当前的VUCA时代&#xff0c;企业需要保持敏捷以应对变革和不确定性。组织架构作为承载战略目标的重要工具&#xff0c;如果无法敏捷调整&#xff0c;会直接影响企业战略的成功落地。但组织架构的设计和调整会触及其他业务&#xff0c;包括岗位、编制、人员与汇报关系等信息变…

优先级队列(大根堆与小根堆)

优先级队列&#xff08;大根堆与小根堆&#xff09; 文章目录 优先级队列&#xff08;大根堆与小根堆&#xff09;堆的介绍模拟堆以数组模型为例&#xff0c;创建堆向下调整&#xff08;shiftDown&#xff09;入队&#xff08;push&#xff09;及向上调整&#xff08;shiftUp&a…

java获取文件夹下所有文件名

在进行 Java编程的过程中&#xff0c;我们会经常使用到文件夹下的所有文件名。有时候可能不太熟悉 Java编程的小伙伴们会发现&#xff0c;在代码中没有获取到所有的文件名&#xff0c;那么这个时候我们应该怎么去获取到这些文件呢&#xff1f;在进行 Java编程的过程中&#xff…

《花雕学AI》31:ChatGPT--用关键词/咒语/提示词Prompt激发AI绘画的无限创意!

你有没有想过用AI来画画&#xff1f;ChatGPT是一款基于GPT-3的聊天模式的AI绘画工具&#xff0c;它可以根据你输入的关键词/咒语/提示词Prompt来生成不同风格和主题的画作。Prompt是一些简短的文字&#xff0c;可以用来指导ChatGPT的创作过程。在这篇文章中&#xff0c;我将展示…

2个月快速通过PMP证书的经验分享

01 PMP证书是什么&#xff1f; 指的是项目管理专业人士资格认证。它是由美国项目管理协会&#xff08;Project Management Institute(简称PMI)&#xff09;发起的&#xff0c;严格评估项目管理人员知识技能是否具有高品质的资格认证考试。其目的是为了给项目管理人员提供统一的…

Redis【性能 02】Redis-5.0.14伪集群和Docker集群搭建及延迟和性能测试(均无法提升性能)

伪集群及Docker集群搭建测试流程 1.伪集群搭建1.1 环境1.2 搭建1.2.1 集群配置1.2.2 生成其他5个节点配置1.2.3 启动并验证节点状态1.2.4 创建集群1.2.5 集群信息 1.3 测试 2.Docker集群2.1 环境2.2 搭建2.2.1 创建专用网络2.2.2 生成配置文件2.2.3 容器启动及验证2.2.4 创建集…

NIST SP 800-193: BIOS 平台固件弹性指南

NIST SP 800-147&#xff0c;BIOS 保护指南 ( NIST SP 800-147 [1]、NIST SP 800-147B [2]&#xff09;解决了 BIOS 的保护问题 可从此处免费获得&#xff1a; https://doi.org/10.6028/NIST.SP.800-193 摘要 此文档提供了关于支持平台固件和数据对抗潜在地具有破坏性的攻…

python的 __init__.py文件中使用__all__变量

在Python的包&#xff08;Package&#xff09;中&#xff0c;init.py文件可以被用作初始化包的脚本。这个文件会在包被导入时自动执行。同时&#xff0c;init.py文件中的__all__变量也可以被用来限制包中可导入的模块、类或方法。具体来说&#xff0c;__all__变量应该是一个列表…

项目上线 | 兰精携手盖雅工场,数智驱动绿色转型

近年来&#xff0c;纺织纤维行业零碳行动如火如荼。作为低碳环保消费新时尚引领者&#xff0c;同时也是纤维领域隐形冠军&#xff0c;兰精在推进绿色发展的同时&#xff0c;也在不断向内探索企业数字化转型之道&#xff0c;以此反哺业务快速扩张。 数智转型&#xff0c;管理先…

计算机网络面试题(上)

1.TCP/IP 网络模型有哪几层&#xff1f; TCP/IP 网络通常是由上到下分成 4 层&#xff0c;分别是应用层&#xff0c;传输层&#xff0c;网络层和网络接口层。 每一层的封装格式&#xff1a; 网络接口层的传输单位是帧&#xff08;frame&#xff09;&#xff0c;IP 层的传输单位…

探究肺癌患者的CT图像的图像特征并构建一个诊断模型

目标效果图操作说明代码 目标 探究肺癌患者的CT图像的图像特征并构建一个诊断模型 效果图 操作说明 代码中我以建立10张图为例&#xff0c;多少你自己定 准备工作&#xff1a; 1.准备肺癌或非肺癌每个各10张图&#xff0c;在本地创建一个名为“data”的文件夹&#xff0c;用…

【Docker】什么是Dockerfile

文章目录 1、认识DockerFile2、DockerFile的构建过程3、DockerFile常用指令4、实战&#xff1a;构建自己的centos5、CMD和ENTRYPOINT的区别6、DockerFile制作tomcat镜像7、发布镜像到DockerHub8、发布镜像到阿里云 1、认识DockerFile Dockerfile是用来构建docker镜像的文件&am…

arduino stm32 开发环境 解决方案

用到工具 hfs.exe 做文件服务器 来模拟所有需要下载的文件 https://download.csdn.net/download/qq_32562225/87754346 其原理就相当于 本应arduinoIDE 下载的文件&#xff0c;先手动通过迅雷工具下载下来&#xff0c;然后再添加到文件服务器中&#xff0c;这样就可以快速…

爬虫想要的HTML

我的个人博客主页&#xff1a;如果’真能转义1️⃣说1️⃣的博客主页 关于Python基本语法学习---->可以参考我的这篇博客&#xff1a;《我在VScode学Python》 接下来回更新一个关于urllib的文章 爬虫一个新浪博客地址 import urllib.requestpage 1 url [" "] *…

如何在线录制视频?教您一个简单的方法!

案例&#xff1a;怎样实现在线录屏&#xff1f; 【听朋友说在线录屏更加便捷&#xff0c;我也想学习如何在线录制电脑屏幕。有没有小伙伴有在线录屏的经验&#xff0c;求好心人给一个简单的方法&#xff01;】 在今天的数字时代&#xff0c;我们经常需要录制电脑屏幕来制作教…