JavaSE开发基础--包机制&JavaDoc&Scanner&循环结构&方法&数组
包机制
如果文件在包中需要 在文件首行添加 package 地址
package pkg1.pkg2.pkg3
import package1
JavaDoc
/**
* @author作者名
* @version版本号
* @since指明需要最早使用的jdk版本
* @param参数名
* @return返回值情况
* @throws异常抛出情况
*/
cmd生成doc文档:
javadoc -protected -splitindex -use -author -version -encoding UTF-8 -charset UTF-8 -d G:\Desktop\JavaSE\JavaDoc @C:\Users\Administrator\AppData\Local\Temp\javadoc_args
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tMV1f5Ds-1659764530952)(assets/image-20220611095847-nt0f6i4.png)]
Scanner
public class Demo01 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
// nextLine 以回车键为结束字符
String str = scanner.nextLine();
System.out.println("输出的内容为:"+str);
//next 以空格为结束字符
String str2 = scanner.next();
System.out.println("输出的内容为:"+str2);
//凡是属于IO流的类如果不关闭会一直占用资源,要养成良好的习惯用完就关掉。
scanner.close();
}
}
循环结构
IF
public class Demo03 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int s = scanner.nextInt();
if (s==100){
System.out.println(s);
}else if (s<100&&s>=80){
System.out.println(s+"1");
}else if (s>=0){
System.out.println("aaaa");
}else {
System.out.println("结束");
}
scanner.close();
}
}
switch case
如果case里面没有写break进行跳出,则会发生case穿透。
一下结果为:及格、不及格、级别未知。因为没有在case后加入break
public class Demo04 {
public static void main(String[] args){
char result = 'c';
switch (result){
case 'a':
System.out.println("优秀");
case 'b':
System.out.println("良好");
case 'c':
System.out.println("及格");
case 'd':
System.out.println("不及格");
default:
System.out.println("级别未知");
}
}
}
while
只要条件符合就一直执行
while(条件){
执行语句
}
do while
与while的区别在先执行后判断。
For
是运行最高效的循环结构
public class Demo01 {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1;j<=i;j++){
System.out.print("i"+"*"+"j"+i*j+"\t");
}
System.out.println();
}
}
}
增强for循环
主要在遍历数组和集合的时候用,jdk5以后才有。
public class ForDemo02 {
public static void main(String[] args){
int[] numbers = {10,20,30,40,50};
for(int x:numbers){
System.out.println(x);
}
}
}
break continue
break在任何循环语句的主体,均可用break控制循环流程,其作用是强行退出循环,不执行循环中剩余的语句。
continue 语句在循环语句中使用,用于终止某次循环过程,即跳过循环体中未执行的语句,接着进行下一次是否执行循环的判断。
goto
打印三角形
public class SanJiao {
public static void main(String[] args){
int num =10;
for(int i =1;i<=num;i++){
for (int j=0;j<=50;j++){
System.out.print(" ");
}
for (int j=num;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();
}
}
}
方法(一般面向对象叫方法,面向过程叫函数)
public static void main
其中 void 是指该方法不返回值,在自定义的方法中可以是任何数据类型 static 是修饰类的表示静态
public class Demo1 {
public static void main(String[] args){
System.out.println(add(3, 5));
}
public static int add(int a,int b){
return a+b;
}
}
return不仅可以用来返回值,也可以用来终止方法运行。
方法重载
就是相同的方法名,参数不同
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gm4Zu3ZL-1659764530953)(assets/image-20220617154437-yt3qzd9.png)]
命令行传参
可以在命令的时候直接传递参数,在接受参数的时候和scanner的text一样遇到空格后即变为下一个参数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7nip11AG-1659764530954)(assets/image-20220617155551-tpyv0ri.png)]
可变参数(不定向参数)
方法声明中,在指定参数类型后加一个省略号(…)
public class Demo03 {
public static void main(String[] args){
Demo03 demo03 = new Demo03();
demo03.test(1,2,3);
}
public void test(int... i){
for (int j =0; j<i.length;j++){
System.out.println(i[j]);
}
}
}
递归
通俗点讲就是自己调用自己。但是程序必须有结束的点,不能是死循环。但是Java是栈结构,所以递归层次过多的话效率会低,并且可能内存溢出。
数组
数组按照存入的先后次序进行排列,数组中所有元素类型必须相同。不赋值就是默认值。数组创建必须分配大小,并且一旦创建不可更改
public class ArraryDemo01 {
public static void main(String[] args){
int[] nums; //声明一个数组
nums = new int[10]; //创建一个数组,规定大小为10.
//也可以这么表示int[] nums = new int[10];
nums[0] = 1;//为第一个元素赋值为1,默认为0,不赋值就是0.
for (int i = 0; i <nums.length ; i++) {
System.out.println(nums[i]);
}
}
}
数组初始化
public class ArraryDemo01 {
public static void main(String[] args){
int[] nums1 = {1,2,3,4,5,6};//静态初始化
int[] nums2 = new int[10];//动态初始化
}
}
数组的基本特点
- 长度确定,一旦创建大小不可改变。
- 元素类型必须相同,不允许出现混合类型。
- 数组中元素可以是任何数据类型,包括基本类型和引用类型。
- 数组的变量属于引用类型,数组也可以看成是一个对象。
案例(数组反转)
public class ArrayDemo02 {
public static void main(String[] args){
int[] ar = {1,2,3,4,5};
pringArray(reversalArray(ar));
}
public static int[] reversalArray(int[] array){
int[] result = new int[array.length];
for (int i = 0,j=array.length-1; i < array.length ; i++,j--) {
result[i] = array[j];
}
return result;
}
public static void pringArray(int[] array){
for (int x:array){
System.out.print(x+"\t");
}
}
}
二维数组
打印
public class ArrayDemo03 {
public static void main(String[] args){
int[][] arr = new int[10][4];
for (int i = 0; i <arr.length ; i++) {
for (int j = 0; j <arr[i].length ; j++) {
System.out.print(arr[i][j]+"\t");
}
}
}
}
Arrays类
public class ArrayGj {
public static void main(String[] args){
int[] array = {1,2,3,4,5,345,6756,456,234,2311};
System.out.println(Arrays.toString(array));
Arrays.sort(array);
System.out.println(Arrays.toString(array));
}
}
稀疏数组
public class Demo04 {
public static void main(String[] args){
//创建一个二维数组
int[][] array1 = new int[5][5];
array1[0][2] = 1;
array1[1][3] = 2;
//打印原始数组
blArray(array1);
System.out.println("===================");
System.out.println("打印稀疏数组");
int[][] array2 = sparseArray(array1);
blArray(array2);
System.out.println("===================");
System.out.println("还原稀疏数组");
blArray(restoreAyyay(array2));
}
//打印二维数组
public static void blArray(int[][] array){
for (int[] ints : array) {
for (int anInt : ints) {
System.out.print(anInt+"\t");
}
System.out.println();
}
}
//稀疏数组转换
public static int[][] sparseArray(int[][] array){
int num = 0;
for (int i = 0; i < array.length ; i++) {
for (int j = 0; j <array[i].length ; j++) {
if (array[i][j] != 0){
num++;
}
}
}
//创建稀疏数组
int[][] array_s = new int[num+1][3];
//定义稀疏数组的第一行
array_s[0][0] = array.length;
array_s[0][1] = array[0].length;
array_s[0][2] = num;
//为稀疏数组填充内容
int line = 1;
for (int i = 0; i < array.length ; i++) {
for (int j = 0; j <array[i].length ; j++) {
if (array[i][j] != 0){
array_s[line][0] = i;
array_s[line][1] = j;
array_s[line][2] = array[i][j];
line++;
}
}
}
return array_s;
}
public static int[][] restoreAyyay(int[][] array){
int[][] array_r = new int[array[0][0]][array[0][1]];
for (int i = 1; i < array.length ; i++) {
for (int j = 0; j <array[i].length ; j++) {
array_r[array[i][0]][array[i][1]] = array[i][2];
}
}
return array_r;
}
}
JavaSE开发基础--包机制&JavaDoc&Scanner&循环结构&方法&数组的更多相关文章
- Java05-Java基础语法(四)循环结构
Java05-Java基础语法(四)循环结构 循环结构(重复/迭代):根据条件重复执行部分语句 1.while循环结构 while(条件表达式){ 循环体语句; } 1)语法:a.while是关键字 ...
- Java基础之包机制+JavaDoc
包机制 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间.[包的本质就是文件夹] 包语句的语法格式为: package pkg1[. pkg2[. pkg3...]]; 一般利用公司域名 ...
- Java学习 (九)基础篇 包机制&JavaDoc
包机制 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间 包语句的语法为: package pkg[.pkg2[.pkg3...]]; 一般利用公司域名倒置作为包名:com.feng.x ...
- JAVA基础——包机制
包机制 包的语法格式package pkg1[.pkg2[.pkg3...]] 一般利用 公司域名倒置 作为包名; 例如www.baidu.com,则建立报的名字com.baidu.www 一般不要让 ...
- JavaSE基础(八)--Java 循环结构
Java 循环结构 - for, while 及 do...while 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. Java中有三种主要的循环结构: whi ...
- 刘强1109 JavaScript基础二(分支与循环结构)
[if-else结构] 1.结构的写法: if(判断条件){ 条件为true时,执行if{} } else{ 条件为false时,执行else{} } 2.注意事项: ① else{}语句块,可以根据 ...
- Python基础-python流程控制之循环结构(五)
循环结构 循环结构可以减少源程序重复书写的代码量,用来描述重复执行某段算法的问题. Python中循环结构分为两类,分别是 while 和 for .. in. 一.while循环 格式1: whil ...
- java 基础 04 循环结构 一维数组
内容: (1)循环结构 (2)一维数组 1.循环结构 1.1for循环 (1)语法格式 for(初始化表达式1;条件表达式2;修改初始化表达式3){ 循环体; } (2)执行流程 执行初始化表达式 = ...
- Shell基础(三):使用for循环结构、使用while循环结构、基于case分支编写脚本、使用Shell函数、中断及退出
一.使用for循环结构 目标: 本案例要求编写一个Shell脚本chkhosts.sh,利用for循环来检测多个主机的存活状态,相关要求及说明如下: 1> 对192.168.4.0/24网段执行 ...
- 浅析PHP中for与foreach两个循环结构遍历数组的区别
遍历一个数组是编程中最常见不过的了,这里跟大家讨论下for和foreach两种方法.用这两种方法执行遍历的场景太多太多了,这里我们只针对以下两个数组作为例子来讨论.所谓管中窥豹,多少能理清一点两者的区 ...
随机推荐
- kubernetes 1.27.1最新版集群部署
kubernetes 1.27.1 最新版集群部署国内环境 官方安装部署文档:https://kubernetes.io/zh-cn/docs/setup/production-environment ...
- 本地锁 & 分布式锁
引子: 解决缓存击穿问题 synchronized (this){代码块} public synchronized Map<String,List<Catelog2Vo>> g ...
- python使用replace将数组写入txt文本
一 概念 1 Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次. 2 用法:str.replace ...
- Android 开发Day5
展示项目 这是我的项目结构,补录的
- 5G+实时云渲染,助力虚拟仿真实训教学升级
随着新冠疫情走向全球大流行的发展趋势,学校教育被迫迁徙到线上教学平台,供需平衡被打破,疫情让"在线教学"成为"口罩式的刚需". 我们看到互联网+教育带来便利的同 ...
- TP6框架--EasyAdmin总结:暂时的离别和新的开始
眨眼一下,因为项目初期开发的完成,我与EasyAdmin的缘分也将迎来短暂的离别,有时候静下来,感觉时间过的好快,我从4月到现在,使用EasyAdmin进行项目开发,从一个初识别PHP的菜鸟,到一个能 ...
- [前端原生技术]jsonp
[版权声明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/18031965出自[进步*于辰的博客] 在学习了Jsoup ...
- Redis(5)——亿级数据过滤和布隆过滤器
一.布隆过滤器简介 上一次 我们学会了使用 HyperLogLog 来对大数据进行一个估算,它非常有价值,可以解决很多精确度不高的统计需求.但是如果我们想知道某一个值是不是已经在 HyperLogLo ...
- Non-local Network:人类早期在CV驯服Transformer尝试 | CVPR 2018
Non-local操作是早期self-attention在视觉任务上的尝试,核心在于依照相似度加权其它特征对当前特征进行增强,实现方式十分简洁,为后续的很多相关研究提供了参考 来源:晓飞的算法工程 ...
- KingbaseES数据库批量加载数据的最佳方法
前言 本文讨论在KingbaseES数据库服务器中批量加载数据的方法,以及空数据库中的初始数据加载和增量数据加载的最佳做法. 批量加载方法 以下数据加载方法按照从最耗时到最不耗时的顺序排列: 1.运行 ...