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

news2025/2/1 1:27:12

会将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;// 方法1
        String str1 = num + "";// 方法2
        String 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.coloradmin.cn/o/2289112.html

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

相关文章

字节iOS面试经验分享:HTTP与网络编程

字节iOS面试经验分享:HTTP与网络编程 🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 目录 字节iOS面试经验分享:HTT…

代码随想录_栈与队列

栈与队列 232.用栈实现队列 232. 用栈实现队列 使用栈实现队列的下列操作: push(x) – 将一个元素放入队列的尾部。 pop() – 从队列首部移除元素。 peek() – 返回队列首部的元素。 empty() – 返回队列是否为空。 思路: 定义两个栈: 入队栈, 出队栈, 控制出入…

【Oracle篇】使用Hint对优化器的执行计划进行干预(含单表、多表、查询块、声明四大类Hint干预)

💫《博主介绍》:✨又是一天没白过,我是奈斯,从事IT领域✨ 💫《擅长领域》:✌️擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控;并对SQLserver、NoSQL(…

论文阅读(九):通过概率图模型建立连锁不平衡模型和进行关联研究:最新进展访问之旅

1.论文链接:Modeling Linkage Disequilibrium and Performing Association Studies through Probabilistic Graphical Models: a Visiting Tour of Recent Advances 摘要: 本章对概率图模型(PGMs)的最新进展进行了深入的回顾&…

【Matlab高端绘图SCI绘图模板】第006期 对比绘柱状图 (只需替换数据)

1. 简介 柱状图作为科研论文中常用的实验结果对比图,本文采用了3组实验对比的效果展示图,代码已调试好,只需替换数据即可生成相关柱状图,为科研加分。通过获得Nature配色的柱状图,让你的论文看起来档次更高&#xff0…

YOLOv8源码修改(4)- 实现YOLOv8模型剪枝(任意YOLO模型的简单剪枝)

目录 前言 1. 需修改的源码文件 1.1添加C2f_v2模块 1.2 修改模型读取方式 1.3 增加 L1 正则约束化训练 1.4 在tensorboard上增加BN层权重和偏置参数分布的可视化 1.5 增加剪枝处理文件 2. 工程目录结构 3. 源码文件修改 3.1 添加C2f_v2模块和模型读取 3.2 添加L1正则…

后端token校验流程

获取用户信息 前端中只有 await userStore.getInfo() 表示从后端获取数据 在页面中找到info对应的url地址,在IDEA中查找 这里是getInfo函数的声明,我们要找到这个函数的使用,所以点getInfo() Override public JSONObject getInfo() {JSO…

Ansible自动化运维实战--通过role远程部署nginx并配置(8/8)

文章目录 1、准备工作2、创建角色结构3、编写任务4、准备配置文件(金甲模板)5、编写变量6、编写处理程序7、编写剧本8、执行剧本Playbook9、验证-游览器访问每台主机的nginx页面 在 Ansible 中,使用角色(Role)来远程部…

C语言自定义数据类型详解(二)——结构体类型(下)

书接上回,前面我们已经给大家介绍了如何去声明和创建一个结构体,如何初始化结构体变量等这些关于结构体的基础知识。下面我们将继续给大家介绍和结构体有关的知识: 今天的主题是:结构体大小的计算并简单了解一下位段的相关知识。…

Maven的单元测试

1. 单元测试的基本概念 单元测试(Unit Testing) 是一种软件测试方法,专注于测试程序中的最小可测试单元——通常是单个类或方法。通过单元测试,可以确保每个模块按预期工作,从而提高代码的质量和可靠性。 2.安装和配…

Jetson Xavier NX 安装 CUDA 支持的 PyTorch 指南

本指南将帮助开发者完成在 Jetson Xavier NX 上安装 CUDA 支持的 PyTorch。 安装方法 在 Jetson 上安装 Pytorch 只有两种方法。 一种是直接安装他人已经编译好的 PyTorch 轮子;一种是自己从头开始开始构建 PyTorch 轮子并且安装。 使用轮子安装 可以从我的 Gi…

GWO优化GRNN回归预测matlab

灰狼优化算法(Grey Wolf Optimizer,简称 GWO),是一种群智能优化算法,由澳大利亚格里菲斯大学的 Mirjalii 等人于 2014 年提出。该算法的设计灵感源自灰狼群体的捕食行为,核心思想在于模拟灰狼社会的结构与行…

Unity 粒子特效在UI中使用裁剪效果

1.使用Sprite Mask 首先建立一个粒子特效在UI中显示 新建一个在场景下新建一个空物体,添加Sprite Mask组件,将其的Layer设置为UI相机渲染的UI层, 并将其添加到Canvas子物体中,调整好大小,并选择合适的Sprite&#xff…

【大厂AI实践】OPPO:大规模知识图谱及其在小布助手中的应用

导读:OPPO知识图谱是OPPO数智工程系统小布助手团队主导、多团队协作建设的自研大规模通用知识图谱,目前已达到数亿实体和数十亿三元组的规模,主要落地在小布助手知识问答、电商搜索等场景。 本文主要分享OPPO知识图谱建设过程中算法相关的技…

C# 添加、替换、提取、或删除Excel中的图片

在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观。此外,对于已有图片,你有事可能需要更新图片以确保信息的准确性,或者将Excel 中的图片单独保存,用于资料归档、备…

赛博算卦之周易六十四卦JAVA实现:六幺算尽天下事,梅花化解天下苦。

佬们过年好呀~新年第一篇博客让我们来场赛博算命吧! 更多文章:个人主页 系列文章:JAVA专栏 欢迎各位大佬来访哦~互三必回!!! 文章目录 #一、文化背景概述1.文化起源2.起卦步骤 #二、卦象解读#三、just do i…

iperf 测 TCP 和 UDP 网络吞吐量

注:本文为 “iperf 测网络吞吐量” 相关文章合辑。 未整理去重。 使用 iperf3 监测网络吞吐量 Tom 王 2019-12-21 22:23:52 一 iperf3 介绍 (1.1) iperf3 是一个网络带宽测试工具,iperf3 可以擦拭 TCP 和 UDP 带宽质量。iperf3 可以测量最大 TCP 带宽…

内外网文件摆渡企业常见应用场景和对应方案

在如今的企业环境中,内外网文件摆渡的需求越来越常见,也变得越来越重要。随着信息化的不断推进,企业内部和外部之间的数据交换越来越频繁,如何安全、高效地进行文件传输成了一个关键问题。今天,咱就来聊聊内外网文件摆…

论文阅读(十五):DNA甲基化水平分析的潜变量模型

1.论文链接:Latent Variable Models for Analyzing DNA Methylation 摘要: 脱氧核糖核酸(DNA)甲基化与细胞分化密切相关。例如,已经观察到肿瘤细胞中的DNA甲基化编码关于肿瘤的表型信息。因此,通过研究DNA…

Android View 的事件分发机制解析

前言:当一个事件发生时(例如触摸屏幕),事件会从根View(通常是Activity的布局中的最顶层View)开始,通过一个特定的路径传递到具体的View,这个过程涉及到三个关键的阶段:事…