详细解释java当中的所有知识点(前言及数据类型及变量)(第一部分)

会将java当中的所有的知识点以及相关的题目进行分享,这是其中的第一部分,用红色字体标注出重点,以及加粗的方式进行提醒


目录

一、Java语言概述

1.Java语言简介

2.语言优势

二、main方法

1.Java程序结构组成

2.运行Java程序

3.注释

4.标识符

硬性规则

建议

5.关键字

三、数据类型与变量

1.字面常量

2.数据类型

3.变量

1.语法

2.整型变量

3.长整型变量

4.短整型变量

5.字节型变量

6.双精度浮点型

神奇事件:

7.单精度浮点数

8.字符型变量

9.布尔型变量

4.类型转换

自动类型转换【隐式】

强制类型转换【显式】

5.类型提升

1.int与long之间(int会被提升为long)

2.byte与byte的运算

总结:

四、字符串类型

1.int转成String(valueOf函数)

2.String转成int(parseInt函数)

总结:


一、Java语言概述

1.Java语言简介

Java是一种优秀的程序设计语言

Java是一个有一系列计算机软件和规范形成的技术体系(该技术体系提供了完整的用于软件开发和跨平台部署的支持环境)

1.语言广泛使用:在TIOBE编程语言社区排行非常靠前,成为了最火的编程语言之一

2.工作领域是非常广泛的:企业级系统;web开发;Android平台应用;大数据平台开发

2.语言优势

1.“Write once,Run anywhere”,一次编译,到处运行

2.语言特性:

       a.简单性:相对于C++做了一个减法

       b.面向对象:依靠对象之间的交互来完成工作

       c.分布式:Java当中有丰富的例程库,用于处理HTTP和FTP之类的TCP/IP协议

       d.健壮性:Java当中采用的指针模型可以消除重写内存和毁坏数据的可能性

       e.安全性:Java适用于网络/分布式环境:运行时堆栈溢出,破坏自己进程空间之外的内存,未经授权读写文件

       f.体系结构中立:Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现

      g.可移植性:基本数据类型大小以及有关运算都做了明确的说明(更加方便进行移植)

      h.解释性:Java自己维护了一套基于栈结构的指令集,字节码中的文件就是按照自己的指令集来组织的

      i.高性能:边解释边执行,使执行效率大幅度提升

      j.多线程:带来更好的交互响应和实时行为

     k.动态性:可以不断适应不断发展的环境,库当中可以自由添加新方法和实例变量


二、main方法

1.Java程序结构组成

public class HelloWorld{public static void main(String[] args){System.out.println("Hello world!");}
}

最终会打印出“Hello world!”

一个完整的Java程序,由三个部分组成

1.源文件(扩展名:*.java);原文件当中带有类的定义(类:表示一个程序的一个小的组件)

2.类:类当中有一个或者多个方法,方法必须在类的内部进行声明

3.方法:在方法的花括号当中编写方法应该执行的语句

总结:类存在源文件中;方法存在类中;语句存在方法中

2.运行Java程序

Java是一个半编译型、半解释性语言

源文件------>javac编译器------>.class(字节码组成面向JVM文件)------->java虚拟机执行------>JVM会将字节码文件转化为平台能识别

注:运行java之前,必须安装好JDK,JDK当中包含了javac和java工具,java最终是在JVM上运行的

2.JDK、JRE、JVM之间的关系

3.注释

注释分类:

单行注释(//)使用的是最多的

多行注释(/*注释内容*/)

文档注释(/**文档注释*/)

规范:

内容准确:注释与代码一致

篇幅合理;使用中文(根据具体的公司来看)

积极向上

4.标识符

在程序中由用户给类名,方法名,或者变量名所取的名字

硬性规则

标识符中可以包含:字母、数字以及下划线$符等

注:标识符不能以数字开头,也不能是关键字,且严格区分大小写

建议

类名:每个单词首字母大写

方法名:首字母小写,后面的每个单词的首字母大写

变量名:与方法名规则相同

5.关键字

关键字由java语言提前定义好的,有特殊含义的标识符,或称为保留字

权限修饰限定:

private;protected;public

类,函数,变量修饰:

abstract;final;static;synchronized

类与类关系:

extends;implements

实例及引用实例,判断实例

new;this;super;instanceof

异常处理:

try;catch;finally;throw;throws

关键字:

package;import

其他关键字:

native;strictfp;transient;volatile;assert


三、数据类型与变量

1.字面常量

System.out.println("Hello world!");其中的“Hello world!”是一个字面常量

字面常量(直接进行打印的这一种)

分类:

1.字符串常量:“12345”;“Hello”

2.整型常量:100;1000

3.浮点数常量:3.14;0.49

4.字符常量:‘A’;‘1’

5.布尔常量:true;false

6.空常量:null

2.数据类型

java中数据类型主要分为两种:基本数据类型引用数据类型

基本数据类型由四类八种

1.四类:整型,浮点型,字符型,布尔类型

2.八种:

在java中所有的数据类型都是有固定的大小的

注:

不论是在16位系统还是32位系统,int都是占用4个字节,long占用8个字节

整形和浮点型都是带有符号的(正负的意思)

整型默认:int;浮点型默认:double

字符串属于引用类型

进制转化:

1KB=1024Byte;1MB=1024KB;1GB=1024MB;1Byte=8bit

3.变量

对于经常改变的内容,称为变量

数据类型就是用来定义不同种变量的

1.语法

数据类型 变量名 = 初始值;

 public static void main(String[] args) {Byte   a = 99;short  b = 9999;int    c = 999999999;long   d = 999999999;float  e = (float) 99.99;double f = 99.99;char   g = '1';boolean h = true;}

2.整型变量

定义:

两种定义方式

public static void main(String[] args) {//方式一:定义给出初始值int a = 10;//方式二:定义时没有;在使用的时候必须要给出初始值int b;b = 10;int c = b;}

:1.使用第二种方式,在使用之前没有赋值,编译期间会发生报错

2.定义变量时,不能超出类型的最大值

3.int的包装类为Integer

求int类型的范围方式:

3.长整型变量

定义:

两种定义方式

 public static void main(String[] args) {//方式一:直接进行定义long a = 10;//方式二:为区分int与long类型,使用L进行辨别long b = 10L;}

第二种方式,除了使用L之外,还可以使用小写的l;但是小写的可能与1不能很好区分

:1.长整型变量的后面加上L或者l,推荐加L(更加便于区分)

2.长整型不论在哪一个系统都只占用内存8个字节

3.long的包装类型为Long

求long类型的范围方式:

4.短整型变量

定义:

一种定义方式以及求short的方式:

public static void main(String[] args) {//只有这一种的定义方式short a = 10;//求short的大小问题System.out.println(Short.MAX_VALUE);System.out.println(Short.MIN_VALUE);}

注:1.short在任何情况下都是只占内存2个子节的大小

2.short的包装类为Short

5.字节型变量

定义

一种定义方式

以及求byte的大小

 public static void main(String[] args) {//一种定义方式byte a = 10;System.out.println(Byte.MAX_VALUE);System.out.println(Byte.MIN_VALUE);}

最终可以将Byte的类型进行打印,求出他的范围的大小

:1.byte在任何时刻的大小都是占1个字节

2.字节的包装类为Byte

6.双精度浮点型

定义

一种定义方式

public static void main(String[] args) {//一种定义方式double a = 3.14;System.out.println(Double.MAX_VALUE);System.out.println(Double.MIN_VALUE);}
神奇事件:
public static void main(String[] args) {int a = 1;int b = 2;System.out.println("a / b = "+a/b);double a1 = 1;double b1 = 2;System.out.println("a1 / b1 = "+a1/b1);}

最终打印出来的值是:

a / b = 0
a1 / b1 = 0.5

在java当中int除以int类型的值仍然是int类型

如果想要得到0.5就必须通过double的方式进行计算

1.double在任何情况下斗只占8个字节

2.浮点数与整数在内存当中的存储方式不同,不能单独使用2^n的形式来计算

3.double类型的包装类为Double

4.在存储的时候是一个近似值,不是精确值

7.单精度浮点数

定义

只有一种定义方式

在定义的时候,只有一种定义方式

如果采用下面的方式就会直接发生报错

1.float在java当中只占用4个字节

2.float表示的范围比较小,在工程当中是优先考虑Double

3.float的包装类型为Float

8.字符型变量

定义

只有一种定义方式

public static void main(String[] args) {//只有一种定义方式char c1 = 'A';char a2 = '帅';}

在java当中char类型是可以存放整形的

1.java当中使用      单引号+单个字母      的形式表示字符字面值

2.java当中使用的是Unicode表示字符,一次一个字符占用两个字节,表示的字符种类会更多,包括中文

3.char的包装类是Character

9.布尔型变量

定义

只有一种定义方式

public static void main(String[] args) {//只有一种定义方式boolean a = true;}

其中boolean类型的取值只有两种:true;false

1.java当中的boolean类型和int类型不能相互进行转化,不存在1=true;0=false的方式

2.java虚拟机规范当中,并没有明确规定boolean占了几个字节,也没有专门用来处理boolean的字节码指令,在Oracle公司的虚拟机实现中,boolean占1个字节

3.boolean的包装类是Boolean

4.类型转换

java作为一个强类型编程语言,当不同类型之间的变量相互赋值时,会有比较严格的校验

自动类型转换【隐式】

System.out.println(1024);
System.out.println(3.14);

整型默认情况下是int

浮点型默认情况下是double

特点:数据范围小的转为数据范围大的会自动进行

由数据范围大的转为数据小的情况的时候可能会出现数据丢失的现象,不是很安全

强制类型转换【显式】

1.不同数字类型的变量之间赋值,范围小的可以隐式转化为范围大的

2.范围大的转化为范围小的,需要进行强制类型转化,且可能会发生数据的丢失

3.强制类型转化不一定会成功,不相干的类型是不能进行转化的

5.类型提升

1.int与long之间(int会被提升为long)

会发生数据丢失,则会出现报错

2.byte与byte的运算

出现的是不兼容的情况

总结:

1.不同类型的混合运算,范围小的会提升成为范围大的

2.对于short,byte这种比4个字节小的类型,会先提升为4个字节的int再进行计算


四、字符串类型

1.int转成String(valueOf函数)

public static void main(String[] args) {int num = 10;// 方法1String str1 = num + "";// 方法2String str2 = String.valueOf(num);}

调用String类下的函数valueOf

2.String转成int(parseInt函数)

 public static void main(String[] args) {String str = "100";int num = Integer.parseInt(str);}

调用Integer下的parseInt函数实现之间的转化


总结

希望可以能够共同进步,帮助到大家,帮助到我自己,ヾ(◍°∇°◍)ノ゙

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

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

相关文章

MYSQL 商城系统设计 商品数据表的设计 商品 商品类别 商品选项卡 多表查询

介绍 在开发商品模块时,通常使用分表的方式进行查询以及关联。在通过表连接的方式进行查询。每个商品都有不同的分类,每个不同分类下面都有商品规格可以选择,每个商品分类对应商品规格都有自己的价格和库存。在实际的开发中应该给这些表进行…

【竞技宝】LOL:两大赛区胜率达到78.6!

北京时间1月29日,英雄联盟2025新赛季正在如火如荼的进行之中,目前由于新春佳节的到来,LCK和LPL赛区都进行了短暂的休赛期。在新春佳节之前的比赛中,由于新版本以及全局BP(LPL)的到来,很多英雄都…

软件测试 —— jmeter(2)

软件测试 —— jmeter(2) HTTP默认请求头(元件)元件作用域和取样器作用域HTTP Cookie管理器同步定时器jmeter插件梯度压测线程组(Stepping Thread Group)参数解析总结 Response Times over TimeActive Thre…

信息安全专业优秀毕业设计选题汇总:热点选题

目录 前言 毕设选题 开题指导建议 更多精选选题 选题帮助 最后 前言 大家好,这里是海浪学长毕设专题! 大四是整个大学期间最忙碌的时光,一边要忙着准备考研、考公、考教资或者实习为毕业后面临的升学就业做准备,一边要为毕业设计耗费大量精力。学长给大家整理…

在线课堂小程序设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

vim如何解决‘’文件非法关闭后,遗留交换文件‘’的问题

过程描述: 由于我修改文件时(一定得修改了文件,不做任何修改不会产生这个问题)的非法关闭,比如直接关闭虚拟机,或者直接断开远程工具的远程连接,产生了以下遗留交换文件的问题: 点击…

SpringBoot 数据访问(MyBatis)

SpringBoot 数据访问(MyBatis) 向 SQL 语句传参 #{} 形式 #{}:如果传过来的值是字符串类型。那两边会自动加上 单引号。当传递给 #{} 的参数值是非字符串类型(如整数、浮点数、布尔值等),MyBatis 不会为这些值添加引…

SpringBoot整合Swagger UI 用于提供接口可视化界面

目录 一、引入相关依赖 二、添加配置文件 三、测试 四、Swagger 相关注解 一、引入相关依赖 图像化依赖 Swagger UI 用于提供可视化界面&#xff1a; <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactI…

【ArcGIS遇上Python】批量提取多波段影像至单个波段

本案例基于ArcGIS python,将landsat影像的7个波段影像数据,批量提取至单个波段。 相关阅读:【ArcGIS微课1000例】0141:提取多波段影像中的单个波段 文章目录 一、数据准备二、效果比对二、python批处理1. 编写python代码2. 运行代码一、数据准备 实验数据及完整的python位…

[EAI-027] RDT-1B: a Diffusion Foundation Model for Bimanual Manipulation

Paper Card 论文标题&#xff1a;RDT-1B: a Diffusion Foundation Model for Bimanual Manipulation 论文作者&#xff1a;Songming Liu, Lingxuan Wu, Bangguo Li, Hengkai Tan, Huayu Chen, Zhengyi Wang, Ke Xu, Hang Su, Jun Zhu 论文链接&#xff1a;https://arxiv.org/ab…

可扩展架构:如何打造一个善变的柔性系统?

系统的构成:模块 + 关系 我们天天和系统打交道,但你有没想过系统到底是什么?在我看来,系统内部是有明确结构 的,它可以简化表达为: 系统 = 模块 + 关系 在这里,模块是系统的基本组成部分,它泛指子系统、应用、服务或功能模块。关系指模块 之间的依赖关系,简单…

【LLM】DeepSeek-R1-Distill-Qwen-7B部署和open webui

note DeepSeek-R1-Distill-Qwen-7B 的测试效果很惊艳&#xff0c;CoT 过程可圈可点&#xff0c;25 年应该值得探索更多端侧的硬件机会。 文章目录 note一、下载 Ollama二、下载 Docker三、下载模型四、部署 open webui 一、下载 Ollama 访问 Ollama 的官方网站 https://ollam…

讯飞智作 AI 配音技术浅析(二):深度学习与神经网络

讯飞智作 AI 配音技术依赖于深度学习与神经网络&#xff0c;特别是 Tacotron、WaveNet 和 Transformer-TTS 模型。这些模型通过复杂的神经网络架构和数学公式&#xff0c;实现了从文本到自然语音的高效转换。 一、Tacotron 模型 Tacotron 是一种端到端的语音合成模型&#xff…

JavaScript 进阶(下)

原型 what 首先&#xff0c;构造函数通过原型分配的函数是所有对象所 共享的。 然后&#xff0c;JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象 这个对象可以挂载函数&#xff0c;对象实…

Effective Objective-C 2.0 读书笔记—— 消息转发

Effective Objective-C 2.0 读书笔记—— 消息转发 文章目录 Effective Objective-C 2.0 读书笔记—— 消息转发前言消息转发机制概述动态方法解析处理dynamic的属性用于懒加载 消息转发快速消息转发完整消息转发 总结 前言 在前面我学习了关联对象和objc_msgSend的相关内容&a…

Hive:struct数据类型,内置函数(日期,字符串,类型转换,数学)

struct STRUCT&#xff08;结构体&#xff09;是一种复合数据类型&#xff0c;它允许你将多个字段组合成一个单一的值, 常用于处理嵌套数据&#xff0c;例如当你需要在一个表中存储有关另一个实体的信息时。你可以使用 STRUCT 函数来创建一个结构体。STRUCT 函数接受多个参数&…

嵌入式知识点总结 Linux驱动 (二)-uboot bootloader

针对于嵌入式软件杂乱的知识点总结起来&#xff0c;提供给读者学习复习对下述内容的强化。 目录 1.什么是bootloader&#xff1f; 2.Bootloader的两个阶段 3.uboot启动过程中做了哪些事&#xff1f; 4.uboot和内核kernel如何完成参数传递&#xff1f; 5.为什么要给内核传递…

Unbutu虚拟机+eclipse+CDT编译调试环境搭建

问题1: 安装CDT&#xff0c;直接Help->eclipse Market space-> 搜cdt , install&#xff0c;等待重启即可. 问题2&#xff1a;C变量不识别vector ’could not be resolved 这是库的头文件没加好&#xff0c;右键Properties->C Build->Enviroment&#xff0c;增加…

碳化硅MOSFET相对IGBT和超结MOSFET出现价格倒挂预示着什么

碳化硅&#xff08;SiC&#xff09;MOSFET相对于IGBT和超结MOSFET出现价格倒挂&#xff08;即SiC MOSFET单价低于传统硅基器件&#xff09;&#xff0c;这一现象反映了化合物半导体产业的深刻变革&#xff0c;并预示着技术、市场和产业链格局的多重演变。倾佳电子杨茜从技术突破…

openRv1126 AI算法部署实战之——TensorFlow TFLite Pytorch ONNX等模型转换实战

Conda简介 查看当前系统的环境列表 conda env list base为基础环境 py3.6-rknn-1.7.3为模型转换环境&#xff0c;rknn-toolkit版本V1.7.3&#xff0c;python版本3.6 py3.6-tensorflow-2.5.0为tensorflow模型训练环境&#xff0c;tensorflow版本2.5.0&#xff0c;python版本…