当前位置: 首页 > news >正文

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&timestamp=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语言自定义类型---进阶

之前的文章中有结构体初阶知识的讲解&#xff0c;对结构体不是很了解的小伙伴可以先去去看一下结构体初阶 结构体&#xff0c;枚举&#xff0c;联合结构体结构体类型的声明特殊的声明结构的自引用结构体变量的定义和初始化结构体内存对齐 <3 <3 <3(重点)那为什么存在内…...

85.链表总结

链表总结 链表总结与进阶 抽象数据类型&#xff08;ADT abstract data type&#xff09;与抽象数据接口&#xff08;ADI abstract data Interface&#xff09; 链表实际上就是对于结构体、结构体指针和结构体内可以包含指向同类型的结构体指针不可以包含指向同类型的结构体的应…...

【博学谷学习记录】超强总结,用心分享|狂野大数据课程【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中&#xff0c;所以可以直接利用pip安装 pip install salesforce-lavis测试安装 from lavis.models import model_zoo print(model_zoo) # # Architectures Types # # …...

【IDEA】如何在Tomcat上创建部署第一个Web项目?

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

程序员画流程图的工具Draw.io

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

CAPL脚本DBLookup函数动态访问CAN 报文的属性

&#x1f345; 我是蚂蚁小兵&#xff0c;专注于车载诊断领域&#xff0c;尤其擅长于对CANoe工具的使用&#x1f345; 寻找组织 &#xff0c;答疑解惑&#xff0c;摸鱼聊天&#xff0c;博客源码&#xff0c;点击加入&#x1f449;【相亲相爱一家人】&#x1f345; 玩转CANoe&…...

2022年显卡性能跑分排名表

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

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 物理层&#xff08;TJA1101&#xff09;&#xff1a;3.2.2 数据链路层&#x…...

万字长文详解webpack知识图谱

webpack概念 概念 Webpack 是一种用于构建 JavaScript 应用程序的静态模块打包器&#xff0c;它能够以一种相对一致且开放的处理方式&#xff0c;加载应用中的所有资源文件&#xff08;图片、CSS、视频、字体文件等&#xff09;&#xff0c;并将其合并打包成浏览器兼容的 Web…...

模板测试(Stencil Test)

模板测试可以用来针对特殊的区域进行渲染控制,实现有趣的效果,例如绘制物体轮廓。在 使用模板测试的时候,一般的步骤如下: 启用模板测试,以便写入数值到模板缓冲中渲染物体,根据渲染的物体将特定的数值写入到模板缓冲中禁用模板缓冲写入设置模板函数,根据于模板缓冲中的…...

【Go语言学习】安装与配置

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

HCIP-5OSPF区域类型学习笔记

1、OSPF区域类型 OSPF提出了区域的概念&#xff08;AREA&#xff09;&#xff0c;区域是将所有运行OSPF 的路由器人为的分成不同的组&#xff0c;以区域ID来标示。在区域内路由计算的方法不变&#xff0c;由于划分区域之后&#xff0c;每个区域内的路由器不会很多&#xff0c;…...

C语言再学习第三章

例题3-1 编写一个函数&#xff0c;实现华氏度和摄氏度的转化。 已知公式&#xff1a;c &#xff08;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篇】小目标检测综述

小目标检测&#xff08;Small Object Detection&#xff09;是指在图像中检测尺寸较小的目标物体&#xff0c;通常是指物体的尺寸小于图像大小的1/10或者更小&#xff0c;COCO为例&#xff0c;面积小于等于1024像素的对象维下目标。小目标检测是计算机视觉领域的一个重要研究方…...

常用Linux命令的基本使用

序号 命令 对应英文 作用 1 ls list 查看当前文件夹下的内容 2 pwd print work directory 查看当前所在文件夹 3 cd[目录名] changge directory 切换文件夹 4 touch[文件名] touch 如果文件不存在&#xff0c;新建文件 5 mkdir[目录名] make directory …...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...