Java入门基础知识

news/2024/5/4 20:11:10/文章来源:https://www.cnblogs.com/go1166/p/16738119.html

概念

关键字:具有特殊用途的单词。

保留字:未使用的关键字(goto const)。

直接量:不可用作标识符(ture false null)。

一、JAVA运行机制

Java程序的运行必须经过编写、编译、运行三个步骤。

编写是指在Java开发环境中进行程序代码的输入,最终形成后缀名为.java的Java源文件。

编译是指使用Java编译器(JDK中)对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件,这不像C语言那样最终生成可执行文件。

运行是指使用Java解释器将字节码文件翻译成机器代码,执行并显示结果。

字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码,它是一种二进制文件,是Java源文件由Java编译器编译后生成的目标代码文件。编程人员和计算机都无法直接读懂字节码文件,它必须由专用的Java解释器(JVM)来解释执行,因此Java是一种在编译基础上进行解释运行的语言。

二、SDK JDK JRE JVM

SDK(Software Development Kit)软件开发工具包

JDK(Java Development Kit) JAVA开发工具包

JRE(Java Runtime Environment) JAVA运行环境

JVM(Java Virtual Machine)虚拟机

JDK = JRE + javac.exe(编译工具)+jir.exe(打包工具)

JRE = JVM + 类库

JDK用于开发(编译、执行、打包),而JRE只用于执行。另外,由于Eclipse等IDE具有自己的编译器,所以只需要JRE就可以了。

Java提出的“一次编写,到处运行”是建立在JRE基础之上的;

Java的.class文件可以放到任何装有JRE的机器上运行;

开发java应用程序需要JDK,运行java程序需要JRE;

三、JAVA程序组织形式

Java程序是一个纯粹的面向对象的语言,因此Java程序必须以类(class)的形式存在。

类(class)是Java程序中的最小程序单位,Java程序不允许可执行语句,方法等成分独立存在,所有的程序部分都必须存放在类定义里。

一个Java源文件可以包含多个类定义,但最多只能包含一个public类定义。如果Java源文件里包含public类定义,则该源文件的文件名必须与这个public类的类名相同。

四、JAVA数据类型

img

引用数据类型还包括一种特殊的null类型。

自动类型转换:从小到大

强制类型转换:从大到小

数值类型和布尔类型不能进行类型转换,引用数据类型的转换只能再有继承关系的两个类型之间进行。

五、标识符

即用于命名的符号。由数字、字母、下划线、美元符组成,不可为关键字和保留字,不能包括空格,开头不可为数字。

六、final

  1. final修饰的变量不可被改变,final修饰的成员变量必须显式的指定初始值(否则没意义,默认初始化)。
  2. final定义并指定初始值的变量在编译阶段就确定下来,保存在常量池中,程序执行时直接进行宏替换
  3. final修饰的方法不能被重写,比如Object类中的getClass()方法。
  4. final修饰的类不能被继承。

七、正则表达式

1,特殊的字符要求:

img

2,预定义的字符

img

3,方括号表达式:

img

4,边界匹配符

img

5,数量表示符

img

八、异常处理

抛出异常:异常对象提交到JVM。

捕获异常:JVM寻找合适的catch块,若找到则将异常对象交给该catch块处理。(找不到则退出)

异常处理方式

img

通过try、catch捕获异常

异常捕获要先小后大,try中变量为局部变量

//try中变量为局部变量
try{// 程序代码}catch(ExceptionName e1){//Catch 块}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

通过throws抛出异常

定义一个方法的时候可以使用throws关键字声明。使用throws关键字声明的方法表示此方法不处理异常,而交给方法调用处进行处理。

此时无需使用try catch语句。

throw关键字抛出异常

throw关键字作用是抛出只有一个异常,抛出的时候是抛出的是一个异常类的实例化对象,在异常处理中,try语句要捕获的是一个异常对象,那么此异常对象也可以自己抛出。

知识点拓展

(1)Java9增强的自动关闭资源的try语句

try(FileInputStream fi=new FileInputStream(sc))
{}
  • 1
  • 2
  • 3
  • 4

正常情况下try必须搭配catch或finally,但这种情况下相当于有一个隐式finally,可以不写。

(2)执行顺序

try{return;
}catch(){}finally{}return;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

代码段首先进入try语句,因无异常抛出,代码将要return的内容保存在内存中,然后执行finally,因finally中无可执行内容,再转回try中执行return,整个代码段执行结束,而finally后面的return是不会执行的。

1、不管有没有出现异常,finally块中代码都会执行;但当执行System.exit(1)时退出虚拟机,finally不会执行。

2、程序会先执行finally块再执行try catch的return throw语句。

3、当try和catch中有return时,finally仍然会执行;

4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。

(3)子类抛出的异常必须小于或等于父类。

(4)异常链(责任链模式)、异常转译

九、==和equals方法

(1)==

基本数据类型:比较值

引用数据类型:比较地址

(2)equals

基本数据类型:不可用

引用数据类型:比较地址

重写(String):比较值

(3)常量池

String s1="1234";
String s2="12"+"34";
String s3="1"+"234";
  • 1
  • 2
  • 3

JVM常量池保证相同的字符串常量只有一个,上面三个字符串引用同一对象。

十、JavaBean

作用:减轻其他代码复杂度,提高代码复用

定义(满足以下2点 )
a.是public 修饰的类 ,有public 无参构造
b.所有属性(如果有) 都是private,并且提供set/get (如果boolean 则get 可以替换成is)

使用层面
a.封装业务逻辑

封装业务逻辑的JavaBean 用于操作 一个封装数据的JavaBean

b.封装数据

封装数据的JavaBean 对应于数据库中的一张表 。

十一、变量

Java语言支持的变量类型有:

  • 类变量:独立于方法之外的变量,用 static 修饰。
  • 实例变量:独立于方法之外的变量,不过没有 static 修饰。
  • 局部变量:类的方法中的变量。

(1)类变量(静态变量)

  • 类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外。
  • 无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。大多数静态变量声明为public类型。
  • 静态变量在第一次被访问时创建,在程序结束时销毁。
  • 类变量具有默认值,默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。

(2)实例变量

  • 实例变量声明在一个类中,但在方法、构造方法和语句块之外;
  • 实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
  • 实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为private。通过使用访问修饰符可以使实例变量对子类可见;
  • 实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;

(3)局部变量

  • 局部变量声明在方法、构造方法或者语句块中;
  • 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
  • 访问修饰符不能用于局部变量;
  • 局部变量是在栈上分配的。
  • 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
 

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

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

相关文章

教你如何使用GPA导出模型,另送一个 GPA CSV2MESH Tool in unity

以前写过一篇:Unity - RenderDoc 抓帧导出 FBX(带UV) 吐槽 我估计GPA是怕收律师函,因为如果 GPA 将所有资源一键提取,一键导出,那么可能很多开发商会告他 可以看到也好几个帖子问 GPA 官方,都…

【PDN仿真笔记3-电容布局Q3D模型搭建】

PDN仿真笔记3-电容布局Q3D模型搭建 1. 叠层参数及设计要求 2. 变量设置 根据设计要求,将各个参数设置为变量,通过Add添加变量名称及数值(下图value应该为1.2mil) 部分设置完成的变量 3.搭建平面 引用2节中设置的变量&#xf…

检测网络框架越来越多

搬运工又来了 之前也发过相关 在汇总说一下啊~~ yolo也不在孤单了~~ 出了一大堆了~~ 之前都一一发过 今天在来个大汇总 目标检测是现在最热门的研究课题,也一直是工业界重点研究的对象,最近几年内,也出现了各种各样的检测框架&#xff0c…

PHP第三方易宝支付对接

简言: 最近手头有个数字藏品的项目,需要对接第三方易宝支付,在此整理自己的对接经验,希望对大家有所帮助。 步骤 1,下载sdk PHP第三方支付易宝支付最新sdk包,其中包含回调。-PHP文档类资源-CSDN下载 2&…

树形DP

285. 没有上司的舞会 - AcWing题库 题意是给你每个人的开心值&#xff0c;和每个人的顶头上司&#xff0c;如果每个人与自己的顶头上司不会同时去的前提下&#xff0c;问你最大的开心值是多少 树形dp 注释写在代码下面啦~ #include<iostream> #include<cstring>…

ThinkPHP6.0开启多应用模式的方法

ThinkPHP发展至今已经到了6..0.X版本,整个结构较thinkphp5有了很大的变化,ThinkPHP6.0基于精简核心和统一用法两大原则在5.1的基础上对底层架构做了进一步的优化改进,并更加规范化。由于引入了一些新特性,ThinkPHP6.0运行环境要求PHP7.1+,不支持5.1的无缝升级(官方给出了升…

3_1 操作系统

3.01 操作系统概述 接口的区分&#xff1a; 人机之间的接口&#xff1a;命令&#xff0c;窗口应用软件与硬件之间的接口&#xff1a;api的接口 进程管理 3.02 进程管理——进程状态转换图 进程的状态&#xff1a;操作系统当中对进程进行管理的时候&#xff0c;为进程指定了几种…

一个项目的整个流程

1.基本配置 基础配置包括 1.Vuex------------作用:存储公共的数据 2.Vue-router---------作用:配置页面的映射关系 3.node_modules--------作用:包的管理工具 npm i 包的名字 4.vue.config.js-----------配置一些信息 例如配置跨域的问题 5.assets 放一些静态的资源…

JAVA毕设项目酒店员工管理系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)

JAVA毕设项目酒店员工管理系统&#xff08;VueMybatisMavenMysqlsprnigSpringMVC&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&am…

DoIP协议:通用DoIP首部否定确认码02和03的区别

通用DoIP首部否定确认消息 当外部测试设备(诊断仪)发送DoIP消息给DoIP实体时,DoIP实体的传输层把DoIP消息(传输层payload,即DoIP header + DoIP payload)上发给DoIP协议层。DoIP协议层取到数据后,不管它是什么类型的DoIP消息,首先都需要被DoIP通用首部处理程序按照规定…

【统计学习|书籍阅读】第六章 logistics回国和最大熵模型 p77-p88

文章目录思路logistic回归模型最大熵模型最大熵模型定义最大熵模型的学习极大似然估计模型学习的最优化算法思路 logistic 回归是统计学习的经典分类方法。最大熵是概率模型学习的一个准则&#xff0c;将其推广到分类问题得到最大熵模型。 logistic回归模型 logistic分布&am…

# 二叉树和线索二叉树相关问题v1

文章目录二叉树和线索二叉树相关问题v1遍历算法遍历顺序分类遍历要点核心递归方式非递归方式线索二叉树二叉树vs线索二叉树(逻辑结构OR存储结构)线索二叉树的空指针剩余问题线索二叉树的遍历二叉树和线索二叉树相关问题v1 遍历算法 pre (NLR)A{B(DHI)(EJK)}{C(FLM)(GNO)}:∠\a…

【云原生 • Kubernetes】配置管理 - Secret ConfigMap

本文导读一、机密配置抽象 Secret1. 认识 Secret2. Secret 的使用(1) 创建 Secret 加密数据(2) 将 Secret 以变量形式挂载到 pod 容器二、配置抽象 ConfigMap1. 认识 ConfigMap2. ConfigMap 的使用(1) 创建配置文件(2) 创建 ConfigMap(3) 将 ConfigMap 以变量形式挂载到 pod 容…

如何保存el-pagination组件的分页状态。

一文细解如何保存组件的分页状态。 文章目录一文细解如何保存组件的分页状态。背景一、实现原理二、代码展示1.分页组件模板背景 使用element-plus的分页组件搭建页面的时候&#xff0c;经常会出现这样一种情况&#xff1a;分页为列表页&#xff0c;当从列表页点击某一项进入详…

HTTP协议4)----对于数据链路层的详细讲解

꧁ 大家好&#xff0c;我是 兔7 &#xff0c;一位努力学习C的博主~ ꧂ ☙ 如果文章知识点有错误的地方&#xff0c;请指正&#xff01;和大家一起学习&#xff0c;一起进步❧ &#x1f680; 如有不懂&#xff0c;可以随时向我提问&#xff0c;我会全力讲解~&#x1f4ac; &…

Springboot2.x仿B站项目第五章查询Es和内容推荐功能实现笔记及源码

文章目录系统全局模块的开发1.系统全文搜索1.1docker 下安装ES以及kibana1.2 配置Es的相关的yaml和configuration1.3 ES全文检索需求视频投稿搜索查询2.观看记录的统计2.1观看视频的添加信息2.2查询观看记录3.用户视频推荐4.视频弹幕遮罩其他章节系统全局模块的开发 本章主要实…

嵌入式分享合集67

一、CAN的接口保护电路 在一个模块上&#xff0c;由于是中转的CAN&#xff0c;需要从两个不同的连接器上连接出去&#xff08;这种情况是根据客户的需求而定的&#xff09;。 一般的设计如图&#xff1a; 一般的&#xff0c;我们最多使用两个电压斜坡控制电容&#xff08;C2和…

Windows如何生成公钥和私钥

Windows如何生成公钥和私钥 方法一)使用git命令 一. 首先安装git二. 桌面上右键 Git Bash Here三. 命令ssh-keygen -t rsa然后 一直enter 四. 将公钥放到服务器上就可以使用SSH链接了. 方法二)使用openssl生成公钥和私钥 参考链接:https://blog.csdn.net/cduoa/article/deta…

组播路由协议——PIM DM工作机制

目录 扩散、剪枝机制 嫁接机制 状态刷新机制 断言机制 采用“推&#xff08;Push&#xff09;”的方式转发组播报文并生成组播表&#xff0c;建立SPT&#xff08;最短路径树&#xff09;转发组播报文。它假定每条链路都有接收者&#xff0c;在每条链路上都直接推送组播流量…

大学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载 HTML5期末大作业

&#x1f329;️ 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f482; 作者主页: 【进入主页—&#x1f680;获取更多源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;HTML5网页期末作业 (1000套…