java基础学习篇
java学习
多写(代码、笔记、文章),多练(交流、思维、技能),多分享,多提问、多思考
什么是计算机
由硬件和软件组成,广泛应用在科学计算、数据处理、自动控制,计算机辅助设计,人工智能,网络等领域
计算机硬件
cpu
Memory(内存)
Motherboard(主板)
IO设备
冯诺依曼体系结构
快捷键
Ctrl+c 复制Ctrl+v 粘贴Ctrl+A 全选Ctrl+Z 撤销Ctrl+S保存ALt+F4 关闭窗口
基本Dos命令
打开cmd :windws+r 输入cmd
资源管理器输入 cmd+空格也可以打开cmd
常用命令:
盘符切换: D: 切D盘 以此推类
当前目录下的所有文件 dir
切换目录: cd /
清理屏幕:c ls
退出终端:exit
查看电脑ip:ifconfig
文件操作
md 目录名 创建目录
rd 目录名 删除目录
cd> 文件名 创建文件
del 文件名 删除文件
java简介
java 编程语言分类**
java按照抽象等级分类的话属于: 高级语言
java按照程序设计方法分类属于: 面向对象语言
java按照程序执行方式分类的话属于: 混合型语言
java按照运行时结构能否改变分类属于: 静态语言
java按照变量是否需要指明类型分类属于:强类型语言
http://t.csdn.cn/HNwiD 分类具体解释可参考此内容
java版本
java 分为三个版本:java SE \javaEE \ java ME
三者关系:SE标准版包含:标准jVm 和标准库 EE是企业版就是比标准版的库包含的东西更多一些但是两者的虚拟机是完全相同的。 ME是针对嵌入式设备的瘦身版,SE的标准库无法在java ME 上使用,而且他的虚拟机也是瘦身版
java 名词解释JDK、JRE 、JVM
jre 是java运行环境,他包含jvm 和java核心类库。他只能运行.class文件,是由jvm (虚拟机)将字节码文件(.class)解释成具体系统平台的机器指令。只有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib,而jre包含lib类库。
jdk 代码要编译成字节码需要jdk来进行编译,jdk 除了包含jre还提供编译器、调试器、java基础类库他是一个开发工具包
java特性和优势
简单性、面向对象、可移植性、高性能、分布式、动态性、多线程
安全性、健壮性
HelloWord
1、新建一个文件夹、存放代码
2、新建一个java文件(Hello.java)
-
文件后缀名.java
-
注意代码中Class名字要与文件名一致,并且首字母大写
public class Hello{public static void main(String[] args){System.out.print("Hello World");} } 解析 :外面是类public class Hello里面是方法public static void main(String[] args)public static void 修饰符
-
打开命令提示符,进入Hell.java 存放的位置,
运行命令:javac Hello.java 编译此文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3u0tcDFq-1678025541318)(file://C:\Users\axn\AppData\Roaming\Typora\typora-user-images\image-20230303143642649.png?lastModify=1678025448)]
运行命令:dir ,发现多了一个Hello.class 此文件是编译后的文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NAd4qHSf-1678025541321)(C:/Users/axn/AppData/Roaming/Typora/typora-user-images/image-20230303143755200.png?lastModify=1678025404)]
-
假如运行编译命令错,提示命令不存在,检查一下系统变量,尤其是path 路径配置的系统变量位置,看是不是排在首位
-
注意事项:java 大小写是敏感的 文件名:尽量使用英文
程序运行机制
源程序(*.java)->java编译器–>字节码文件(.class)->虚拟机(类装载器->字节码校验器->解释器)->操作系统
IDE-IDEA
安装IDEA
psvm 会自动出现:
public static void main(String[] args) {}
sout会自动出现:
System.out.println();
java基础
注释、标识符、关键字
注释*
有三种:
- 单行注释 😕/内容
- 多行注释:/* 内容 */
- 文档注释:/**内容 */
标识符**
java 所有的组成部分都需要名字、类名、变量名以及方法名都被称为标识符
标识符大小写敏感
都应该以字母,美元符、或下划线开始
首字符之后可以是字母,美元符、或下划线或数字
关键字:关键字一律用小写字母标识,按其用途划分为如下几组。
(1)用于数据类型。
用于数据类型的关键字有 boolean、byte、char、 double、 float、int、long、new、short、void、instanceof。
(2)用于语句。
用于语句的关键字有break、case、 catch、 continue、 default 、do、 else、 for、 if、return、switch、try、 while、 finally、 throw、this、 super。
(3)用于修饰
用于修饰的关键字有 abstract、final、native、private、 protected、public、static、synchronized、
transient、 volatile。
(4)用于方法、类、接口、包和异常。
用于方法、类、接口、包和异常的关键字有 class、 extends、 implements、interface、 package、import、throws。
还有些关键字,如 future、 generic、 operator、 outer、rest、var等都是Java保留的没有意义的关键字。 [4]
另外,Java还有3个保留字:goto、const、null。它们不是关键字,而是文字。包含Java定义的值。和关键字一样,它们也不可以作为标识符使用。
数据类型
强类型语言:要求变量使用严格符合规定,所有变量都必须先定义后才能使用
java数据类型分为两大类
-
基本类型 primitive type
-
引用类型 reference type
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KG0iSwV8-1678025541322)(file://D:\Program Files\java学习笔记\2551473-20220210231709270-316971942.png?lastModify=1678025448)]
什么是字节
- 位bit :计算机内部数据 最小存储单位 11001100 是一个八位二进制数
- 字节byte:是计算机之后数据处理的基本单位,习惯上带大写B来表示
- 1B(byte,字节)=8bit(位)
- 字符:是指计算机中石油的字母、数字、字和符号
- 1bit 表示1位
- 1Byte表示一个字节 1B=8b
- 1024B=1KB
- 1024KB=1M
- 1024M=1G
类型转换
由于java 是强类型语言,所以有些运算需要类型转换
低----高
byte,short,char->int->long->float->double(小数的优先级一定大于整数,浮点数的数值范围比整数的数值范围大 )
转换分为:强制类型转换 和自动类型转换
举例:
强制类型转换 格式:(类型)变量名 强制转换是 高转低
//byte 数据类型是8位、有符号的,以二进制补码表示的整数;最小值是 -128(-2^7);最大值是 127(2^7-1);
//intint 数据类型是32位、有符号的以二进制补码表示的整数;最小值是 -2,147,483,648(-2^31);最大值是 2,147,483,647(2^31 - 1);
public class DE1 {public static void main(String[] args) {int i = 128 ;byte b = (byte) i;//强制类型转换System.out.println(i);System.out.println(b); }
}
输出结果:
128
-128
/*为什么是i等于128,而b却等于-128?
因为:Byte的最大值是127,然而给它赋值了一个128,
就会出一个叫做“内存溢出”的问题
内存溢出,值就会完全变样了
需要尽量避免*/
自动转换 是低到高 无需加特殊格式直接转换
public class DE1 {public static void main(String[] args) {int i = 128 ;double b = i;System.out.println(i);System.out.println(b);}
}输出结果:
128
128.0
注意点:
1、不能对布尔值进行转换(布尔类型的值不能转换成任何数据类型,true
常量不等于 1,而 false
常量也不等于 0。这两个值只能赋给声明为 boolean
类型的变量)
2、不能把对象类型转换为不相干类型
3、在高容量转换为低容量的时候,需要强制转换
4、转换的时候可能存在内存溢出或精度问题
转换样例:转换的时候可能存在内存溢出或精度问题:
public class DE1 {public static void main(String[] args) {int money = 10_0000_0000 ;int year = 12;int total = money*year;System.out.println(total);//输出-884901888 结果超出int范围导致内存溢出long tota2 = money*year; //money*year结果已经超出int范围溢出了,再转换成long照样会溢出System.out.println(tota2);//输出-884901888long tota3 = money*((long)year);//先把其中一个数进行转换为longSystem.out.println(tota3);//输出 12000000000 结果正确}
}
变量、常量
变量:
-
可以变化的量
-
Java是一种强语言类型所以每个变量必须声明类型
-
java变量是程序中最基本的存储单元,其要素包含变量名、变量类型和作用域
type varname =[value] ; 不建议一行定义多个值
int a,b,c ;
int a=1,b=2,c=3;
建议下面这种程序可读性高
int a=1;
int b=2;
int c=3;
//类型 变量名=值;可以使用逗号分割声明多个同类型变量
变量作用域
-
类变量
-
实例变量
-
局部变量
public class DE1 {//类变量 加了staticstatic double salary = 2500 ;//实例变量:从属于对象也就是DE1这个类String name;int age;//mian 方法public static void main(String[] args) {//局部变量:必须声明和初始化值int i = 100;System.out.println(i);//此局部变量只能在main方法用DE1 de1 = new DE1();System.out.println(de1.age); //int 默认值是0System.out.println(de1.name);//string 默认值是null//类变量System.out.println(salary);//输出2500.0}//其他方法public void add(){} }
常量Constant:
-
初始化(initialize)后不能再改变值!不会变动的值
-
常量可以理解成特殊的变量,被设定后,在程序运行过程中不允许被改变
final 常量名=值;
final double PIIIIIII=3.14;
-
常量名一般使用大写字符
样例:
public class DE2 {//修饰符,不存在先后顺序static final double PI=3.14 ;public static void main(String[] args) {System.out.println(PI);}
}
运算符
包机制、JavaDoc
学习来源
https://www.bilibili.com/video/BV12J41137hu/?buvid=Z14B2B18E9A196034025B50BF5B3EFD31E69&is_story_h5=false&mid=1pqY6B1DqMsFr7%2B9%2BAU3ZA%3D%3D&p=27&plat_id=114&share_from=ugc&share_medium=iphone&share_plat=ios&share_session_id=DC24AC19-FE77-45B0-9ED9-B71B3E541A3A&share_source=WEIXIN&share_tag=s_i×tamp=1678025063&unique_k=IabfMX4&up_id=95256449
http://t.csdn.cn/HNwiD
https://www.liaoxuefeng.com/wiki/1252599548343744/1255876875896416
相关文章:
java基础学习篇
java学习 多写(代码、笔记、文章),多练(交流、思维、技能),多分享,多提问、多思考 什么是计算机 由硬件和软件组成,广泛应用在科学计算、数据处理、自动控制,计算机辅…...
Go 语言基础语法及应用实践
Go语言是一门由Google开发的静态类型、编译型的开源编程语言,被设计成简单、高效、安全的语言。作为一门相对年轻的语言,Go语言的使用范围正在不断扩大,特别是在Web开发、云计算、容器化和分布式系统等领域越来越受到欢迎。 在本篇文章中,我们将探讨Go语言的基础语法及应用…...

C语言自定义类型---进阶
之前的文章中有结构体初阶知识的讲解,对结构体不是很了解的小伙伴可以先去去看一下结构体初阶 结构体,枚举,联合结构体结构体类型的声明特殊的声明结构的自引用结构体变量的定义和初始化结构体内存对齐 <3 <3 <3(重点)那为什么存在内…...
85.链表总结
链表总结 链表总结与进阶 抽象数据类型(ADT abstract data type)与抽象数据接口(ADI abstract data Interface) 链表实际上就是对于结构体、结构体指针和结构体内可以包含指向同类型的结构体指针不可以包含指向同类型的结构体的应…...

【博学谷学习记录】超强总结,用心分享|狂野大数据课程【DataFrame的相关API】的总结分析
操作dataFrame一般有二种操作的方式, 一种为SQL方式, 另一种为DSL方式 SQL方式: 通过编写SQL语句完成统计分析操作DSL方式: 领域特定语言 指的通过DF的特有API完成计算操作(通过代码形式)从使用角度来说: SQL可能更加的方便一些, 当适应了DSL写法后, 你会发现DSL要比SQL更加…...

粒子群优化最小二乘支持向量机SVM回归分析,pso-lssvm回归预测
目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 SVM应用实例,粒子群优化最小二乘支持向量机SVM回归分析 代码 结果分析 展望 支持向量机SVM的详细原理 SVM的定义 支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大…...
lavis多模态开源框架学习--安装
安装lavis安装lavis测试安装问题过程中的其他操作安装lavis 因为lavis已经发布在pypi中,所以可以直接利用pip安装 pip install salesforce-lavis测试安装 from lavis.models import model_zoo print(model_zoo) # # Architectures Types # # …...

【IDEA】如何在Tomcat上创建部署第一个Web项目?
看了网上很多教程,发现或多或都缺失了一些关键步骤信息,对于新手小白很不友好,那么今天就教大家如何在Tomcat服务器(本地)上部署我们的第一个Web项目: 共分为三个部分: 1. IDEA创建Web项目&am…...

程序员画流程图的工具Draw.io
Draw.io 是一个很好用的免费流程图绘制工具,制图结果本质上是xml文件,web版和桌面版可以支持导出图像(png或者svg矢量图都可以)。你可以利用它绘制一系列的图表、图示或图形,包括流程图、UML类图、组织结构图、泳道图、E-R 图、文…...

CAPL脚本DBLookup函数动态访问CAN 报文的属性
🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…...

2022年显卡性能跑分排名表
2022年显卡性能跑分排名表(数据来源于快科技)这个版本的电脑显卡跑分榜第一的是NVIDIA GeForce RTX 3090 Ti显卡。由于显卡跑分受不同的测试环境、不同的显卡驱动版本以及不同散热设计而有所不同,所以显卡跑分会一直变化。 前二十名的台式电…...

mx-font
Abstract 短镜头字体生成(FFG)方法必须满足两个目标:生成的图像既要保留目标字符的底层全局结构,又要呈现多样化的局部参考风格。现有的FFG方法旨在通过提取通用表示样式或提取多个组件样式表示来分离内容和样式。然而,以往的方法要么无法捕捉不同的本地风格,要么无法推广到…...

基于S32K148快速调试TJA1101
文章目录1.前言2.TJA1101简介3.TJA1101调试3.1 硬件3.1.1 整体框图3.1.2 评估板3.1.2.1 参考原理图3.1.2.2 引脚说明3.1.3 转接板3.1.3.1 参考原理图3.1.3.2 模式配置3.1.3.3 原理介绍3.2 软件3.2.1 物理层(TJA1101):3.2.2 数据链路层&#x…...

万字长文详解webpack知识图谱
webpack概念 概念 Webpack 是一种用于构建 JavaScript 应用程序的静态模块打包器,它能够以一种相对一致且开放的处理方式,加载应用中的所有资源文件(图片、CSS、视频、字体文件等),并将其合并打包成浏览器兼容的 Web…...
模板测试(Stencil Test)
模板测试可以用来针对特殊的区域进行渲染控制,实现有趣的效果,例如绘制物体轮廓。在 使用模板测试的时候,一般的步骤如下: 启用模板测试,以便写入数值到模板缓冲中渲染物体,根据渲染的物体将特定的数值写入到模板缓冲中禁用模板缓冲写入设置模板函数,根据于模板缓冲中的…...

【Go语言学习】安装与配置
文章目录前言一、Go语言学习站二、安装与配置1.安装2.环境变量配置3.Gland编辑器安装与配置Hello, World!总结前言 Go语言特性 Go,又称为 Golang,是一门开源的编程语言,由 Google 开发。Go 语言的设计目标是提供一种简单、快速、高效、安全…...

HCIP-5OSPF区域类型学习笔记
1、OSPF区域类型 OSPF提出了区域的概念(AREA),区域是将所有运行OSPF 的路由器人为的分成不同的组,以区域ID来标示。在区域内路由计算的方法不变,由于划分区域之后,每个区域内的路由器不会很多,…...

C语言再学习第三章
例题3-1 编写一个函数,实现华氏度和摄氏度的转化。 已知公式:c (5/9)*(f-32) #include <stdio.h>double f_value 0; double c_value 0; int main(void) {printf("请输入华氏温度\n");scanf("%lf",&f_valu…...

【aiy篇】小目标检测综述
小目标检测(Small Object Detection)是指在图像中检测尺寸较小的目标物体,通常是指物体的尺寸小于图像大小的1/10或者更小,COCO为例,面积小于等于1024像素的对象维下目标。小目标检测是计算机视觉领域的一个重要研究方…...
常用Linux命令的基本使用
序号 命令 对应英文 作用 1 ls list 查看当前文件夹下的内容 2 pwd print work directory 查看当前所在文件夹 3 cd[目录名] changge directory 切换文件夹 4 touch[文件名] touch 如果文件不存在,新建文件 5 mkdir[目录名] make directory …...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...

QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...
[USACO23FEB] Bakery S
题目描述 Bessie 开了一家面包店! 在她的面包店里,Bessie 有一个烤箱,可以在 t C t_C tC 的时间内生产一块饼干或在 t M t_M tM 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC,tM≤109)。由于空间…...