JAVA基础知识Fundamental

JAVA基础知识

  • Java开发环境
    • 名词解释
  • 八大基本类型
    • 整型
    • 长整型
    • 双精度浮点型
    • 布尔型
    • 字符型
    • 类型间的转换
  • 运算符(Operator)
    • 算术运算符
    • 关系运算符
    • 逻辑运算符
    • 赋值运算符
    • 字符串连接运算符
    • 条件运算符
  • 分支结构
  • 循环结构
  • 数组
  • 方法
    • 方法的重载(overloading)
  • Exception

Java开发环境

编译运行过程
编译期: .java源文件经过编译,生成 .class字节码文件

运行期: JVM加载.class字节码文件并运行.class字节码文件

特点: 跨平台,一次编译到处使用

名词解释

JVM (virtual machine) Java虚拟机
加载class字节码文件并运行class字节码文件

JRE (runtime environment)Java运行环境
除了包含JVM以外还包含Java系统类库,运行Java程序所必须的环境
是运行Java程序的最小环境

JDK (development kit) Java开发工具包
除了包含JRE以外还包含了开发Java程序所必须的命令工具
编译、运行等命令工具
是开发Java程序的最小环境

八大基本类型

byte short int long float double boolean char

变量
存数的,内存里开辟空间
变量的命名

  • 只能有字母,数字,_和$符号组成,并且不能以数字开头
  • 严格区分大小写
  • 不能使用Java关键字
  • 允许中文命名,但不建议
    建议英文的见名知意,

良好习惯

  • 拼音坚决杜绝
  • 小驼峰命名法用于变量
  • 大驼峰命名法用于类
byte 1个字节boolean 1个字节
short 2个字节char 2个字节
int 4个字节float 4个字节
long 8个字节double 8个字节

整型

  • int 占4个字节 -231 到231-1(-2147483648到2147483647)
  • 两个整数相除,结果还是整数,小数位无条件舍弃
  • 整数直接量默认为int类型,但不能超出范围,若超出范围则发生编译错误
  • 运算时若超出范围,则发生溢出,溢出不是错误,需要避免

长整型

  • long 占8个字节,范围-263到263-1(-900万万亿到900万万亿多)
  • 如果表示长整型直接量,需在数字后加L
    运算时若有溢出,建议在第一个数加L

双精度浮点型

  • double 占8个字节
  • 小数直接量默认为double型
  • 如果表示float型直接量,需在数字后加F
  • 不能表示精确数据,运算时可能会发生舍入误差,精确场合不能使用

布尔型

  • boolean 占1个字节
  • 只能存储true或false
  • true和false为布尔型直接量

字符型

  • char 占2个字节
  • 采用Unicode编码格式(是世界级通用的定长字符集)
    因为符号太多了,所有Unicode有被划分为了很多个子集
    Java中char采用的是其中最常用的一个子集
  • 一个字符对应一个码 ASCII
    表现形式是字符char,本质是码(0到65535)
    ‘0’=48 ‘A’=65 ‘a’=97
  • 字符型直接量需放在单引号中,有且仅有一个
  • 特殊符号需要通过 \ 来转义

类型间的转换

基本数据类型从小到大依次为

  • byte—short—int—long—float—double
  • char—int—long—float—double

两种方式

  • 自动/隐式类型转换:从小类型到大类型
  • 强制类型转换:从大类型到小类型
  • 注意:强转有可能会溢出或丢失精度

两点规则

  1. 整数直接量可以直接赋值给byte,short,char但不能超出范围
  2. byte,short,char型数据参与运算时,系统会将其自动转换为int类型再运算

运算符(Operator)

算术运算符

+、-、*、/、%、++、- -、

  1. % 取模/取余,余数为0即为整数
  2. ++/- - 自增1/自减1,可在变量前也可在变量后
  • 单独使用时,在前后都一样
  • 被使用时,在前后不一样
  • a++的值为a,a- -的值为a
  • ++a的值为a+1,- -a的值为a-1

关系运算符

<、>、<=、>=、==、!=
关系运算的结果为boolean型
关系成立则为true,关系不成立则为false

逻辑运算符

  • && 短路与(并且)两边都为真则为真,见false则false
  • || 短路或(或者)有真则真,见true则true
  • !逻辑非(取反)非真则假,非假则真
  • 逻辑运算时建立在关系运算的基础之上的
  • 逻辑运算的结果为boolean型

赋值运算符

  • 简单赋值运算符:=
  • 扩展赋值运算符:+=、-=、*=、/=、%=
    扩展赋值运算符自带强转功能

字符串连接运算符

+

  • 若两边为数字,则做加法运算
  • 若两边出现了字符串,则做字符串连接
  • 任何类型的数据与字符串连接,结果都会变为字符串型

条件运算符

语法: boolean?数1:数2

  • 计算boolean的值:
    若为true,则整个表达式的值为?后的数1
    若为false,则整个表达式的值为:后的数2

分支结构

  • if 结构
    if…else 结构
    if…else if 结构
  • switch case 结构
    break 跳出switch

switch中的数据的类型:byte、short、int、char、String、枚举

循环结构

循环三要素:
循环变量:在整个循环过程中所反复改变的那个数

  1. 循环变量的初始化
  2. 循环的条件以循环变量为基础
  3. 循环变量的改变
  • while 结构:先判断后执行,有可能一次都不执行
  • do while 结构:先执行后判断,至少执行一次
  • for 结构:应用率最高,适合于次数相关的

break: 跳出循环
continue: 跳过循环体中剩余语句而进入下一次循环

三种循环结构如何选择:

  • 与循环次数有关选for
  • 与循环次数无关,看第1要素与第3要素的代码是否相同
    若相同,选do while
    若不同,选while

嵌套循环
多行多列使用,外层控制行,内层控制列
执行规则:外层走一次,内层循环走所有次
break默认只能跳出当前一层循环

数组

  • 是一种引用数据类型
  • 相同数据类型元素的集合

数组的定义
整型数组:默认值为0
字符数组:默认值为0
浮点型数组:默认值为0.0
布尔数组:默认值为false

数组的初始化
int[] arr = new int[3];
int[] arr = {2,5,8};
int[] arr = new int[] {2,5,8};

通过下标/索引来访问元素,下标从0开始,最大到(数组长度-1)
.length
System.arraycopy();
Arrays.copyOf();

数组的扩容
数组一旦创建,其空间不可再改变,空间是连续的
创建了一个更大的新的数组,并将数组赋值进去了

Arrays.sort

方法

也称函数,过程
作用:用于封装一段特定的业务逻辑功能
建议:尽可能独立,一个方法只干一件事
好处:可以减少代码重复,利于代码维护
方法可以被反复调用
何时用:只要是一个独立的业务,就应封装到一个方法中

方法的定义: 五要素
修饰词 返回值类型 方法名(参数列表){
方法体
}
方法的调用:

  • 无返回值:方法名(有参传参)
  • 有返回值:数据类型 变量 = 方法名(有参传参);

return

  • return 值;结束方法的执行,返回结果给调用方---------用有返回值的方法中
  • return; 结束方法的执行------------------------------------用无返回值的方法中

形参: 形式参数,定义方法时的参数为形参
实参: 实际参数,调用方法时的参数为实参
方法的签名:方法名+参数列表

System.out.println();
int a = scan.nextInt();
double d = scan.nextDouble();
double c = Math.random();
Arrays.sort();
System.arraycopy()
int[] b = arrays.coptOf();

方法的重载(overloading)

  • 发生在同一类中,方法名相同,参数列表不同
  • 编译器在编译时会根据方法的签名自动绑定方

Exception

ArrayIndexOutOfBoundException
NullPointerException

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

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

相关文章

3D模型格式转换工具HOOPS Exchange助力SIMCON搭建注塑项目

行业&#xff1a;设计与制造 / 注塑成型 / 模拟 挑战&#xff1a;注塑成型商面临着以高效的方式为客户生产零件的挑战。需要大量的试验才能生产出适合的零件&#xff0c;同时模具需要进行多次物理修改&#xff0c;每次修改周期最长需要四个星期&#xff0c;成本高达四到五位数…

第1章 Java、IDEA环境部署与配置

JavaEE简介与IDE环境部署 课程目录 JavaEE简介JDK环境部署IntelliJ IDEA环境部署 JavaEE简介 1. JavaEE是什么&#xff1f; Java EE&#xff08;Java Platform&#xff0c;Enterprise Edition&#xff09;是sun公司&#xff08;2009年4月20日甲骨文将其收购&#xff09;推…

Java反射获取内部类方法

Java反射获取内部类方法 结论一、案例准备二、测试方法&#xff1a;使用反射获取类的成员内部类和方法具体操作具体操作&#xff08;使用getDeclaredClasses&#xff09; 结论 Java 通过反射可以获得内部类&#xff0c;包括内部类属性信息和方法。 一、案例准备 创建了一个类…

永远在路上

今年的1024是自己过的第八个程序员节&#xff0c;虽然没有放假&#xff0c;但是公司给每一个程序员都发了一个水果拼盘的福利&#xff0c;礼轻情意重吧&#xff01;毕竟有许多公司都欠薪的情况下&#xff0c;我们公司不仅按时发薪资&#xff0c;而且还有固定福利和节日福利&…

Python自动处理pptx:新建、另存、添加幻灯片、添加标题、插入文本图片图形、提取文本

Python-pptx库是一个用于创建、更新和读取Microsoft PowerPoint .pptx 文件的Python库。它允许我们使用Python脚本自动化PowerPoint文件的创建、更新和读取操作&#xff0c;是一个非常方便自动化处理PPTX的工具。 安装 pip install python-pptx创建 from pptx import Prese…

【Note】链式存储结构

设计不同的结点结构&#xff0c;可以构成不同的链式存储结构。常用的有&#xff1a;二叉链表、三叉链表、线索链表&#xff08;用空链域存放指向前驱或后继的线索&#xff09;。 二叉链表存储 VS 一般二叉树 二叉链表 VS 二叉树 知识点&#xff1a; 一个二叉链表由根指针root…

es查询限制10000,使用scroll

报错&#xff1a; TransportError(500, ‘search_phase_execution_exception’, ‘Result window is too large, from size must be less than or equal to: [10000] but was [10010]. See the scroll api for a more efficient way to request large data sets. This limit …

vue3+vite在线预览pdf

效果图 代码 <template><div class"pdf-preview"><div class"pdf-wrap"><vue-pdf-embed :source"state.source" :style"scale" class"vue-pdf-embed" :page"state.pageNum" /></div…

Python:实现日历到excel文档

背景 日历是一种常见的工具,用于记录事件和显示日期。在编程中,可以使用Python编码来制作日历。 Python提供了一些内置的模块和函数,使得制作日历变得更加简单。 在本文,我们将探讨如何使用Python制作日历,并将日历输出到excel文档中。 效果展示 实现 在代码中会用到cale…

spring常见问题汇总

1. 什么是spring? Spring是一个轻量级Java开发框架&#xff0c;最早有Rod Johnson创建&#xff0c;目的是为了解决企业级应用开发的业务 逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack&#xff08;一站式&#xff09;轻量级开源框架&#xff0c; 为开…

25.2 MySQL 运算符

1. 伪表 在MySQL中, DUAL是一个特殊的单行, 单列的虚拟表, 主要用于在SELECT语句中计算表达式或执行函数, 而不需要从实际的数据表中检索数据. 使用DUAL的原因主要有以下几点:* 1. 简化计算: 通过在SELECT语句中使用DUAL, 可以方便地计算表达式或执行函数, 而无需创建临时表或…

thinkphp5使用phpmail发送qq邮件

目录 1、使用composer 工具安装&#xff0c;在tp5根目录下执行 2、封装发送邮件方法 3、控制器中调用 4、运行后结果 1、使用composer 工具安装&#xff0c;在tp5根目录下执行 composer require phpmailer/phpmailer 安装成功后显示下面目录 2、封装发送邮件方法 function…

linux中好玩的数据流定向和管道命令一

知识点复习&#xff1a; 什么是数据流定向&#xff0c;个人理解就是将 一些结果信息不打印在屏幕上&#xff0c;而是定位在某一个文件里面 ll /wdf > file 会覆盖file的原内容 ll /wdf >> 会追加到原文件后面 比如在自己的目录新建1.TXT&#xff0c; 2.txt ll /…

echarts 仪表盘统计图

<!--仪表盘统计图--><div class"ybptx" ref"btryzb"></div>mounted(){this.getBtData();}getBtData() {let chart this.$echarts.init(this.$refs.btryzb);let data_czzf this.cznlzhpj.czzfs;let option {series: [{name: 内层数据刻…

TypeScript 快速入门

一、TypeScript 是什么 TypeScript 是一种由微软开发的自由和开源的编程语言。于2012年推出。 TypeScript 是 JavaScript 的一个超集。为 JavaScript 添加了类型系统。 TypeScript 与 JavaScript 的区别 TypeScript JavaScript JavaScript的超集用于解决大型项目的代码复杂性 …

asp.net网球馆计费管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net网球馆计费管理系统是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c#语 言开发 aspnet网球馆计费管理系统1 二、…

Vue 项目进行 SEO 优化

SSR 服务器渲染 服务端渲染, 在服务端 html 页面节点, 已经解析创建完了, 浏览器直接拿到的是解析完成的页面解构 关于服务器渲染&#xff1a;Vue 官网介绍 &#xff0c;对 Vue 版本有要求&#xff0c;对服务器也有一定要求&#xff0c;需要支持 nodejs 环境。 优势: 更好的 …

01. 板载硬件资源和开发环境

一、板载硬件资源 STM32F4VGT6-DISCOVERY硬件资源如下&#xff1a; (1). STM32F407VGT6微控制器有1M的FLASH存储器&#xff0c;192K的RAM&#xff0c;LQFP100封装 (2). 板上的ST-LINK_V2可以使用选择的方式把套件切换成一个独立的ST-LINK/V2来 使用&#xff08;可以使用SWD…

NPI加速器在烽火科技SMT车间的应用:贴片机程序制作效率的革新

烽火科技&#xff0c;一个在国内颇具知名度的高科技企业&#xff0c;坐落于武汉光谷的SMT车间中&#xff0c;机器嗡嗡作响&#xff0c;作业员们忙碌地进行着生产。工厂使用的是ASM的贴片机&#xff0c;使用Sipalce Pro作为其编程软件。然而&#xff0c;在高效的生产线背后&…

Hafnium简介和构建

安全之安全(security)博客目录导读 目录 一、Hafnium简介 二、Hafnium构建 2.1.1 先决条件 2.1.1.1 构建Host 2.1.1.2 工具链 2.1.1.3 依赖 2.1.1.4 获取源码 2.1.2 构建 一、Hafnium简介 可信固件为Armv8-A、Armv9-A和Armv8-M提供了安全软件的参考实现。它为SoC开发人…