java3月train笔记
java笔记
day01
一、jdk和idea下载及安装(一般不建议装C盘):
jdk:java开发环境
idea:开发工具(软件),用来编写代码的
苍老师文档服务器:doc.canglaoshi.org
jdk下载:https://repo.huaweicloud.com/java/jdk/
打开cmd窗口(win+r,输入cmd)
依次输入
java
javac
java -version进行测试
配置环境变量(win+s搜索环境变量,点击编辑系统的环境变量)


再次测试javac命令(一定要打开一个新的cmd窗口)
二、基本语法
1、数据类型
(1)基本数据类型:八种
整型:
①byte,取值范围:-128~127
②short,取值范围:-32768~32767
③int(默认),取值范围:-2147483648~2147483647
④long,数字后面需要加后缀L(l)
浮点型:
⑤float,需要加后缀F(f)
⑥double(默认),不需要加后缀
布尔型:
⑦boolean,值:true或者false
字符型:
⑧char,只能存放一个中文汉字或者一个英文字母、整数
当存放的是数字是,底层会基于ascii码表会进行相应的转化,转化成对应的字符
package cn.td.jsd2303;/*** 八大基本数据类型*/public class Test2 {public static void main(String[] args) {//定义变量//语法格式:定义的类型 变量名 = 值;//修改变量的值//语法格式:变量名 = 值;//整型byte b1 = 127;//(-128~127)System.out.println(b1);b1 = -127;short s1 = 30000;//(-32768~32767)int i1 = 210;//(-2147483648~2147483647)long l1 = 21432934535432L;System.out.println(b1);System.out.println(s1);System.out.println(i1);System.out.println(l1);//浮点型float f1 = 8.9F;double d1 = 15.6;System.out.println(f1);System.out.println(d1);//布尔型boolean bl1 = true;boolean bl2 = false;System.out.println(bl1);System.out.println(bl2);//字符型char c1 = '北';char c2 = 'W';char c3 = 98;System.out.println(c1);System.out.println(c2);System.out.println(c3);}
}
2、运算符
(1)赋值:= += -= /= *= %=
package cn.td.jsd2303;/*** 赋值运算符:= += -= *= /= %=*/
public class Test8 {public static void main(String[] args) {//定义变量格式:变量的类型 变量名 = 变量的值;int i1 = 23;//+=:a+=b <=> a = a + bint i2 = 15;
// i1 = i1 + i2;i1+=i2;System.out.println(i1);int b1 = 20;int b2 = 8;// ctrl + / 注释单行
// b2 = b2 - b1;b2-=b1;System.out.println(b2);double d1 = 2.0;double d2 = 5.0;
// d1 = d1*d2;d1*=d2;System.out.println(d1);int i3 = 100;int i4 = 5;
// i3 = i3/i4;i3/=i4;System.out.println(i3);int i5 = -13;
// i5 = i5 % i3;i5%=i3;System.out.println(i5);}
}
(2)逻辑:> < >= <= == !=
package cn.td.jsd2303;/*** 逻辑:> < >= <= == !=*/
public class Test9 {public static void main(String[] args) {//定义(声明)多个变量//语法格式:变量的类型 变量1,变量2,......;int i1,i2,i3,i4,i5,i6;boolean b1;i1 = 15;i2 = 28;i3 = -15;i4 = 19;i5 = 28;b1 = i1 > i2;System.out.println(b1);//falseb1 = i2 < i3;System.out.println(b1);//falseb1 = i1 >= i4;System.out.println(b1);//falseb1 = i3 <= i1;System.out.println(b1);//trueb1 = (i2==i5);System.out.println(b1);//trueb1 = (i1!=i3);System.out.println(b1);//true}
}
package cn.td.jsd2303;/*** 超市打折案例:如果购物金额达到200,打九折,达到500,打8折,达到800,打6折** 逻辑运算符 + 分支结构*/
public class Test10 {public static void main(String[] args) {double shopMoney = 850.0;if(shopMoney >= 800) {shopMoney = shopMoney * 0.6;System.out.println("您本次一共消费了:" + shopMoney + "元");} else if(shopMoney >= 500) {shopMoney = shopMoney * 0.8;System.out.println("您本次一共消费了:" + shopMoney + "元");} else {shopMoney = shopMoney * 0.9;System.out.println("您本次一共消费了:" + shopMoney + "元");}}
}
(3)&& || !
package cn.td.jsd2303;/*** && A&&B,A、B都为true,结果才为true,有一个是false,结果还是false* || A||B,有一个为true,即为true,如果都为false,才是false* ! !A,如果A为true,结果则为false,如果A为false,结果则为true*/
public class Test11 {public static void main(String[] args) {int i1,i2,i3,i4;boolean b1;i1 = 10;i2 = -13;i3 = 28;i4= 33;b1 = (i1 > i3) && (i4 > i3);System.out.println(b1);//falseif(b1) {System.out.println("result1 is true");} else if((i1 > i4) || (i2 < i3)) {//trueSystem.out.println("result2 is true");}if(!b1) {System.out.println("result3 is " + b1);}}
}
(4)++ –
package cn.td.jsd2303;/*** ++ --*/
public class Test7 {public static void main(String[] args) {int i1 = 10;//++i1;//等价于 i1=i1 + 1System.out.println(++i1);//21System.out.println(i1);//21int i2 = 20;//i2++;//等价于 i2=i2 + 1System.out.println(i2++);//20System.out.println(i2);//21int i3 = 51;int i4 = 28;int i5 = 0;i5 = i3+++--i4;System.out.println(i5);//78}
}
(5)算术:+ - * / %(取模)
package cn.td.jsd2303;/*** 算术:+ - * / %(取模)*/
public class Test6 {public static void main(String[] args) {int i1 = 10;System.out.println(i1);i1 = i1 + 100;System.out.println(i1);int i2 = 5;int i3 = 8;int i4 = 0;i4 = i3 - i2 ;System.out.println(i4);//基本数据类型运算,可能会出现运算结果不精确问题,如下double d1 = 10;double d2 = 9.8;System.out.println(d1-d2);//% 取模(求余数)int i5 = 5;int i6 = 3;int i7 = 0;i7 = i5%i6;System.out.println(i7);//小取大,得到那个小的值i5 = -1;i6 = 10;i7 = i5 % i6;System.out.println(i7);}
}
(6)三目或者三元
package cn.td.jsd2303;/*** 三目或者三元* 格式:a>b?c:d** 例子:找出三个数中的最大值*/
public class Test12 {public static void main(String[] args) {int i1,i2,i3,i4;i1 = 10;i2 = 50;i3 = -100;if(i1 > i2) {//i1比i2大,拿i1和i3比if(i1 > i3) {System.out.println("max value is " + i1);} else {System.out.println("max value is " + i3);}} else {//i1比i2小,拿i2和i3比if(i2 > i3) {System.out.println("max value is " + i2);} else {System.out.println("max value is " + i3);}}//上面的方法虽然可行,但麻烦,推荐用三木或者三元运算符i4 = i1>i2? (i1>i3?i1:i3) : (i2>i3?i2:i3);System.out.println("max value is " + i4);}
}
3、流程控制
(1)分支结构
①if()…else
package cn.td.jsd2303;/*** if else结构*/
public class Test3 {public static void main(String[] args) {boolean b1 = false;if(b1) {System.out.println("this true");} else {System.out.println("this false");}}
}
②if()…else if()…else
package cn.td.jsd2303;/*** if...else if...else*/
public class Test4 {public static void main(String[] args) {boolean b1 = false;boolean b2 = false;if(b1) {System.out.println("this b1 is true");} else if(b2) {System.out.println("this b2 is true");} else {System.out.println("b1 and b2 is false");}}
}
③switch case
package cn.td.jsd2303;/*** switch(args) {* case* }** args可以是byte、int、short、char、String、Enum六种类型*/
public class Test5 {public static void main(String[] args) {int i1 = 10;switch(i1) {case 1:System.out.println("output 1");break;//中断、中止case 2:System.out.println("output 2");case 10:System.out.println("output 10");case -1:System.out.println("output -1");default:System.out.println("output default");}}
}
(2)循环
相关文章:
java3月train笔记
java笔记 day01 一、jdk和idea下载及安装(一般不建议装C盘): jdk:java开发环境 idea:开发工具(软件),用来编写代码的 苍老师文档服务器:doc.canglaoshi.org jdk下载&…...
Apollo Config原理浅析
文章目录1. 简介2. 基本功能3. Apollo关键功能实现原理3.1 框架整体原理3.1.1 Apollo角色3.1.2 框架执行原理3.1.3 整体组成3.2 细节实现3.2.1 Eureka和不同角色机器的关系3.2.2 Meta Server的作用3.2.3 ReleaseMessage消息实现原理3.2.4 Client的通信方式1. 简介 apollo是携程…...
Kubernetes二 Kubernetes之实战以及pod详解
Kubernetes入门 一 Kubernetes实战 本章节将介绍如何在kubernetes集群中部署一个nginx服务,并且能够对其进行访问。 1.1 Namespace Namespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。…...
机械革命黑苹果改造计划第四番-外接显示器、win时间不正确问题解决
问题 1.无法外接显示器 最大的问题就是目前无法外接显示器,因为机械革命大多数型号笔记本电脑的HDMI、DP接口都是直接物理接在独显上的,内屏用核显外接显示器接独显,英伟达独显也是黑苹果无法驱动的,而且发现机械革命tpyec接口还…...
Linux docker(03)可使用GPU渲染的x11docker实战总结
该系列文章的目的旨在之前的章节基础上,使用x11docker构建一个可以使用GPU的docker容器。该容器可以用于3D图形渲染/XR 等使用GPU渲染的程序调试和运行。 0 why docker 为什么非要用x11docker,而不是其他的docker呢? 因为一般的docker是不…...
【Linux操作系统】【综合实验一 Linux操作基础】
文章目录一、实验目的二、实验要求三、实验内容四、实验报告要求一、实验目的 要求掌握Linux基础操作,熟悉Linux行界面,并明白操作的原理以及目的;熟悉Linux系统环境。 二、实验要求 通过这个第一阶段实验,要求掌握以下操作与相…...
关于监控服务器指标、CPU、内存、警报的一些解决方案
文章目录关于监控服务器指标、CPU、内存、警报的一些解决方案Prometheus Grafana 配置 IRIS / Cach 监控服务器Prometheus简介特点架构图Grafana简介特点配置流程自定义Prometheus接口定义配置 Exporter 监控服务器系统资源简介配置流程使用 Alertmanager报警简介配置流程基于…...
vue3全家桶技术栈基础(一)
在认识vue3全家桶之前,先简单回顾一下vue2的全家桶 一.在vue2中,全家桶技术栈 技术栈: vue2 vue-cli vuex3vue-router3webpack elementUI 1.vue-cli 脚手架构建vue项目,CLI 服务是构建于 webpack 和 webpack-dev-server构建快速生成一个vue2的开发项…...
群晖-第2章-设置HTTPS访问
群晖-第2章-设置HTTPS访问 本章介绍如何通过HTTPS访问群晖,前置要求是完成群晖-第1章-IPV6的DDNS中的内容,可以是IPV4也可以是IPV6,或者你有公网IP,直接添加DNS解析也可以。只要能通过域名访问到nas就行。 本文参考自群晖添加SS…...
005 利用fidder抓取app的api,获得股票数据
一、下载安装fidder 百度搜索fidder直接下载,按提示安装即可。 二、配置fidder 1. 打开fidder,选择tools——options。 2. 选择HTTPS选项卡,勾选前三项,然后点击右侧【actions】,选择【trust root certificate】&a…...
京东测试进阶之路:初入测试碎碎念篇
1、基本的测试用例设计方法 基本的测试用例设计方法(边界值分析、等价类划分等)。 业务和场景的积累,了解测试需求以及易出现的bug的地方。 多维角度设计测试用例(用户、业务流程、异常场景、代码逻辑)。 2、需求分析 …...
华为OD机试 - 乘积最大值(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】
乘积最大值 题目 给定一个元素类型为小写字符串的数组 请计算两个没有相同字符的元素长度乘积的最大值 如果没有符合条件的两个元素返回0 输入 输入为一个半角逗号分割的小写字符串数组 2 <= 数组长度 <= 100 0 < 字符串长度 <= 50 输出 两个没有相同字符的元…...
Java并发知识点
文章目录1. start()和run()方法的区别?2. volatile关键字的作用?使用volatile能够保证:防止指令重排3. sleep方法和wait方法有什么区别?sleep()方法4. 如何停止一个正在运行的线程?方法一:方法二࿱…...
前端 ES6 环境下 require 动态引入图片以及问题
前端 ES6 环境下 require 动态引入图片以及问题require 引入图片方式打包体积对比总结ES6 环境中,通过 require 的方式引入图片很方便,一直以来也没有出过什么问题,后来项目中,需要动态引入图片。 require 动态引入也容易实现&am…...
PCL 欧氏聚类分割
文章目录 一、应用背景1、点云分割算法的属性2、点云分割的挑战二、实现过程三、主要函数及代码实现1、主要函数2、核心代码3、效果实现四、参考文献一、应用背景 1、点云分割算法的属性 1)鲁棒性,比如树木是具有与汽车相区别的特征的,当点云数据的特征数量增加时,分割算…...
一台服务器最大能支持多少条TCP连接
一、一台服务器最大能打开的文件数 1、限制参数 我们知道在Linux中一切皆文件,那么一台服务器最大能打开多少个文件呢?Linux上能打开的最大文件数量受三个参数影响,分别是: fs.file-max (系统级别参数)&am…...
Teradata退出中国,您可以相信中国数据库!
继Adobe、Tableau、Salesforce之后,2023年2月15日,数仓软件巨头Teradata宣布将逐步结束在中国的直接运营。数仓界的“黄埔军校”仓皇撤出中国市场给出的理由非常含蓄:Teradata对中国当前和未来商业环境的慎重评估,我们做了一个艰难…...
markdown组合数学公式
markdown组合数学公式 $C_n^m$CnmC_n^mCnm $A_n^m$AnmA_n^mAnm $$\binom{m}{nm1}$$(mnm1)\binom{m}{nm1}(nm1m) $${m\choose nm1}$$(mnm1){m\choose nm1}(nm1m)...
Golang实践录:一个字符串比较示例
本文介绍两个含中文的字符串且针对相同位置字符的比较,给出实现代码。 起因 某工程需将接收的字符串和数据库里的指定字段值对比,该字符串含中文,两者允许个别字符有差异,差异数量3及以下的,认为相同。 字符串默认用…...
Linux后台开发工具箱-葵花宝典
目录目录 11. 前言 52. 脚本类工具 52.1. 双引号和单引号 52.2. 环境变量和变量 52.3. sed命令-字符串文本操作 62.4. sed和awk使用外部变量 62.5. awk 应用 62.5.1. awk给外部变量赋值 62.5.2. awk 多字符串分割 72.6. 日期操作 72.7. 设置shell模式 82.8. 设置shell提示 82.9…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...
QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...
6.9本日总结
一、英语 复习默写list11list18,订正07年第3篇阅读 二、数学 学习线代第一讲,写15讲课后题 三、408 学习计组第二章,写计组习题 四、总结 明天结束线代第一章和计组第二章 五、明日计划 英语:复习l默写sit12list17&#…...
【2D与3D SLAM中的扫描匹配算法全面解析】
引言 扫描匹配(Scan Matching)是同步定位与地图构建(SLAM)系统中的核心组件,它通过对齐连续的传感器观测数据来估计机器人的运动。本文将深入探讨2D和3D SLAM中的各种扫描匹配算法,包括数学原理、实现细节以及实际应用中的性能对比,特别关注…...
