Java笔记三
包机制:
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
包语句的语法格式为:
pack pkg1[. pkg2[. pkg3...]];
般利用公司域名倒置作为包名;如com.baidu.com,如图
 
导包:
为了能够使用某一个包的成员,需要在Java程序中明确导入该包。使用“import”语句可完成此功能
import package[.package2...].(classname|*);
JavaDoc
生成自己的API文档
 
◆@author作者名
◆@version版本号
◆@since指明需要最早使用的jdk版本
◆@param参数名
◆@return返回值情况x BI UA.图三当您楼
◆@throws异常抛出情况
Scanner对象
我们可以通过Scanner类来获取用户的输入。
◆基本语法:`Scanner s = new Scanner(System. in);`
 
可以看到输入的是Hello world但是输出的是Hello
◆通过Scanner类的next()与nextLine方法获取输入的字符串,在读取前我们一-般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
import java.util.Scanner;public class work1 {public static void main(String[] args) {Scanner scanner=new Scanner(System.in);System.out.println("使用nextLine方式接收");//判断是否还有输入if (scanner.hasNextLine()){//使用next方式接收String str= scanner.nextLine();//程序会等待用户输入完毕System.out.println("输出的内容为:"+str);}scanner.close();}
}
 

next与nextLine的区别
◆next():
◆1、一定要读取到有效字符后才可以结束输入。
◆2. 对输入有效字符之前遇到的空白, next() 方法会自动将其去掉。
◆3.只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
◆4、next()不能得到带有空格的字符串。
◆nextLine():
◆1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
◆2、可以获得空白。
进阶使用实例:
import java.util.Scanner;public class work2 {public static void main(String[] args) {Scanner scanner=new Scanner(System.in);int i=0;float f=0.0f;System.out.println("请输入整数:");//如果...那么if (scanner.hasNextFloat()){i = scanner.nextInt();System.out.println("整数数据:"+i);}else {System.out.println("输入的不是整数数据!");}System.out.println("请输入小数:");//如果...那么if (scanner.hasNextFloat()){f = scanner.nextFloat();System.out.println("小数数据:"+f);}else {System.out.println("输入的不是小数数据!");}scanner.close();}
}
 
求和与平均值示例代码:
public class day4 {public static void main(String[] args) {//输入多个数字,求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来借宿输入并输出执行结果Scanner scanner=new Scanner(System.in);//和double sum=0;//计算输入了多少个数字int m=0;//通过循环判断是否还有输入,并在里面对每一次进行求和和统计while (scanner.hasNextDouble()){double x=scanner.nextDouble();m=m+1;sum=sum+x;System.out.println("你输入了第"+m+"个数据,然后当前结果sum="+sum);}System.out.println(m+"个数的和为"+sum);System.out.println(m+"个数的平均值是"+(sum/m));}
}
 
单选择结构if...else...实例
public class work3 {public static void main(String[] args) {Scanner scanner=new Scanner(System.in);System.out.println("请输入内容:");String s=scanner.nextLine();//equals:判断字符串是否相等if (s.equals("Hello")){System.out.println(s);}else System.out.println("End");scanner.close();}
}
 
选择语句switch case实例
public class work4 {public static void main(String[] args) {//case穿透  //switch匹配一个具体的值char grade='C';switch (grade){case 'A':System.out.println("优秀");break;//可选case 'B':System.out.println("良好");case 'C':System.out.println("及格");case 'D':System.out.println("再接再厉");case 'E':System.out.println("挂科");default://可选System.out.println("未知等级");}}
} 
 
1+2+3+...+100=?
while案例
public class work5 {public static void main(String[] args) {//计算1+2+3+...+100=?int i=0;int sum=0;while (i<=100){sum=sum+i;i++;}System.out.println(sum);}
} 
do...while案例
public class work6 {public static void main(String[] args) {int i=0;int sum=0;do {sum=sum+i;i++;}while (i<=100);System.out.println(sum);}
}
 
while与do while的区别
◆while先判断后执行。dowhile是先执行后判断!
◆Do...while总是保证循环体会被至少执行一次!这是他们的主要差别。
代码解释如下:
public class work7 {public static void main(String[] args) {int a=0;while (a<0){System.out.println(a);a++;}System.out.println("=============");do {System.out.println(a);a++;}while (a<0);}
}
 
 
for实例
实例一:100以内奇数与偶数的和
public class work8 {public static void main(String[] args) {int oddSum=0;//奇数的和int evenSum=0;//偶数的和for (int i = 0; i <=100; i++) {if (i%2!=0){oddSum+=i;}else {evenSum+=i;}}System.out.println("技术的和:"+oddSum);System.out.println("偶数的和:"+evenSum);}
} 
实例二:输出1-1000之间能被5整除的数,并且每行输出3个
public class work9 {public static void main(String[] args) {for (int i = 0; i < 1000; i++) {if (i%5==0){System.out.print(i+"\t");}if (i%(5*3)==0){System.out.println();//每三个换一行//System.out.println("\n");}}}
} 
println 输出完会换行
print 输出完不会换行
九九乘法表
public class work11 {public static void main(String[] args) {for (int j = 1; j <= 9; j++) {for (int i = 1; i <= j; i++) {System.out.print(i + "*" + j + "=" + (j * i)+"\t");}System.out.println();}}
}
 
 
用两个循环使用两个乘数都增大,使用i<j去除多余项,注意print不换行,println换行,也就是乘数j每增大1换一行
增强for循环
增强for循环语法格式如下:
for(声明语句:表达式)
{
//代码句子
}
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式:表达式是要访问的数组名,或者是返回值为数组的方法
break与continue
break:跳出这个循环但代码继续往下运行如:
public class work13 {public static void main(String[] args) {int i=0;while (i<100){i++;System.out.println(i);if(i==30){break;}}System.out.println("123");}
} 
 
continue:在循环语句中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定
public class continuework {public static void main(String[] args) {int i=0;while(i<100){i++;if (i%10==0) {System.out.println("no");continue;}System.out.println(i);}}
} 
 
打印三角形案例
public class sanjiao {public static void main(String[] args) {for (int i = 1; i <= 5; i++) {//5行的一个三角for (int j = 5; j >= i; j--) {System.out.print(" ");}for (int j = 1; j <= i; j++) {System.out.print("*");}//打印左半个三角for (int j = 1; j < i; j++) {System.out.print("*");}//打印右半个三角System.out.println();}}
} 
学习资源来自哔哩哔哩——遇见狂神说——狂神说Java
相关文章:
Java笔记三
包机制: 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。 包语句的语法格式为:pack pkg1[. pkg2[. pkg3...]]; 般利用公司域名倒置作为包名;如com.baidu.com,如图 导包: 为了能够…...
ElementUI之首页导航与左侧菜单
目录 一、Mock 1.1 什么是Mock.js 1.2 安装与配置 1.2.1 安装mock.js 1.2.2 引入mock.js 1.3 mock.js使用 1.3.1 定义测试数据文件 1.3.2 mock拦截Ajax请求 1.3.3 界面代码优化 二、总线 2.1 定义 2.2 类型分类 2.3 前期准备 2.4 配置组件与路由关系 2.4.1 配置…...
java项目之在线教育资源管理系统(ssm源码+文档)
项目简介 在线教育资源管理系统实现了以下功能: 管理员:个人中心、学生管理、教师管理、公告信息管理、课程信息管理、试题管理、留言板管理、管理员管理、试卷管理、系统管理、考试管理。学生:个人中心、留言板管理、考试管理,…...
C/S架构学习之UDP服务器
UDP服务器的实现流程:一、创建用户数据报套接字(socket函数):通信域选择IPV4网络协议、套接字类型选择数据报式; int sockfd socket(AF_INET,SOCK_DGRAM,0); 二、填充服务器的网络信息结构体:1.定义网络信…...
磁盘占用率100% 的优化方案
1.禁用不必要的系统服务 右键点击此电脑,打开管理 打开服务 寻找SysMain 右键属性 》 禁用 》 停止 》 应用 SysMain的作用:当开机后,windows会加载大量的应用程序预加载到内存中,会在后台预加载数据(如果是旧版本win…...
vue组件的通信
文章目录 组件通信父传子父传子:通过prop来进行通信 子传父先在父组件用注册方法 , 在子组件触发使用 emit 函数 组件间通信-平行组件使用事件总线的方法,也就是把整个vue提出来,当为一个事件总线 其他组件通信父组件 provide来提供变量,然后再子组件中通过inject来注入变量 组…...
(搞定)排序数据结构(1)插入排序 选择排序+冒泡排序
目录 本章内容如下 一:插入排序 1.1插入排序 1.2希尔排序 二:选择排序 2.1选择排序 三:交换排序 3.1冒泡排序 一:插入排序 1.1直接插入排序 说到排序,其实在我们生活中非常常见&…...
C++ 类访问修饰符 public、private、protected
数据封装是面向对象编程的一个重要特点,它防止函数直接访问类类型的内部成员。类成员的访问限制是通过在类主体内部对各个区域标记 public、private、protected 来指定的。关键字 public、private、protected 称为访问修饰符。 一个类可以有多个 public、protected…...
pytorch学习笔记——BCE与CE
BCELoss的话只需要网络输出一个通道,CE Loss(Cross Entropy Loss)需要输出n_class个通道。 对于二分类任务可以使用CE Loss输出两个通道,也可以使用BCE Loss输出一个通道。 https://www.jianshu.com/p/5b01705368bb https://zhuanlan.zhihu.com/p/372628…...
win使用git(保姆级教程)
序言 上学期间用的git并不多,但是从研三实习以及后面工作来看,git是一项必备技能,所以在此来学习一下。 下载git安装包 打开网站,根据需求来下载;一般按照如下方式进行下载: 然后安装的时候记得按下图勾…...
Python图像处理-----几何变换
文章目录 一、图像几何变换理论二、图像平移2.1 使用数学公式的实现方式为:2.2 使用矩阵实现的方式为2.3 使用opencv三、图像缩放3.1 用数学式子表示为公式(a为缩放系数):3.2 用矩阵表示如公式所示:一、图像几何变换理论 图像几何变换不改变图像的像素值,在图像平面上进行像…...
如何正确选择研究方向?如何实现论文创新?
学术评价是遵循“质量第一”原则的,所以对于研究生来说,从一开始就要把路子走正,自觉树立精品意识,把精力高度集中到提高学位论文的质量上来。这里,根据本人多年来指导博士和硕士研究生的体会,就人文社科研究生学位论文的选题与创新略述管见。 学位论文选题的两个层面 …...
Postgresql源码(113)表达式JIT计算简单分析
相关 《Postgresql源码(85)查询执行——表达式解析器分析(select 11如何执行)》 《Postgresql源码(113)表达式JIT计算简单分析》 1 普通表达式计算 普通表达式计算发生在优化器preprocess_expression中&am…...
CMU15-213 课程笔记 04-Floating Point
文章目录 浮点数如何用二进制表示IEEE 浮点数标准IEEE 浮点数实现IEEE 浮点数在内存里 E exp - bias 计算指数M 1.xxx 尾数计算举例:对一个浮点数进行转换一些关于浮点数的计算等等 浮点数如何用二进制表示 计算机内部的浮点数不是这样存在内存里的(至…...
DockerKubernetes ❀ Service下Port端口区分
文章目录 概述案例 概述 在Kubernetes中,Service(svc)是一种抽象机制,用于将一组 Pod 暴露给其他应用程序或服务。Service 可以有三种类型的端口: nodePort:这是 Service 在节点上公开的端口。可以使用此…...
【C++】笔试训练(一)
目录 一、选择题二、编程1、组队竞赛2、删除公共字符 一、选择题 1、以下for循环的执行次数是() for (int x 0, y 0; (y 123) && (x < 4); x);A 是无限循环 B 循环次数不定 C 4次 D 3次 答案:C 2、以下程序的运行结果是&…...
数据结构与算法之集合: Leetcode 349. 两个数组的交集 (Typescript版)
两个数组的交集 https://leetcode.cn/problems/intersection-of-two-arrays/description/ 描述 给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1 输入:nums1 [1,2,…...
Unity 内存性能分析器 (Memory Profiler)
一、 安装 安装有两种方式一: add package : com.unity.memoryprofiler方式二: From Packages : Unity Registry 搜索 Memory Profiler 二、 使用 打开:Windows - > Analysis - > Memory Profiler 打开MemoryProfiler界面࿰…...
前端携带Bearer Token
前端携带Bearer Token 在前端使用 axios 发送请求时,可以通过设置请求头来携带 Bearer Token。Bearer Token 是一种常用的身份验证方式,它通常用于 OAuth2 授权流程中。 要在 axios 中携带 Bearer Token,可以通过设置 Authorization 请求头…...
leetcode 周赛 364
参考视频: 单调栈【力扣周赛 364】 文章目录 8048. 最大二进制奇数100049. 美丽塔 I100048. 美丽塔 II100047. 统计树中的合法路径数目 8048. 最大二进制奇数 题目链接 给你一个 二进制 字符串 s ,其中至少包含一个 1 。 你必须按某种方式 重新排列 字…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道
文/法律实务观察组 在债务重组领域,专业机构的核心价值不仅在于减轻债务数字,更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明,合法债务优化需同步实现三重平衡: 法律刚性(债…...
动态规划-1035.不相交的线-力扣(LeetCode)
一、题目解析 光看题目要求和例图,感觉这题好麻烦,直线不能相交啊,每个数字只属于一条连线啊等等,但我们结合题目所给的信息和例图的内容,这不就是最长公共子序列吗?,我们把最长公共子序列连线起…...
stm32进入Infinite_Loop原因(因为有系统中断函数未自定义实现)
这是系统中断服务程序的默认处理汇编函数,如果我们没有定义实现某个中断函数,那么当stm32产生了该中断时,就会默认跑这里来了,所以我们打开了什么中断,一定要记得实现对应的系统中断函数,否则会进来一直循环…...
