包机制

如果文件在包中需要 在文件首行添加 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&循环结构&方法&数组的更多相关文章

  1. Java05-Java基础语法(四)循环结构

    Java05-Java基础语法(四)循环结构 循环结构(重复/迭代):根据条件重复执行部分语句 1.while循环结构 while(条件表达式){ 循环体语句; } 1)语法:a.while是关键字 ...

  2. Java基础之包机制+JavaDoc

    包机制 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间.[包的本质就是文件夹] 包语句的语法格式为: package pkg1[. pkg2[. pkg3...]]; 一般利用公司域名 ...

  3. Java学习 (九)基础篇 包机制&JavaDoc

    包机制 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间 包语句的语法为: package pkg[.pkg2[.pkg3...]]; 一般利用公司域名倒置作为包名:com.feng.x ...

  4. JAVA基础——包机制

    包机制 包的语法格式package pkg1[.pkg2[.pkg3...]] 一般利用 公司域名倒置 作为包名; 例如www.baidu.com,则建立报的名字com.baidu.www 一般不要让 ...

  5. JavaSE基础(八)--Java 循环结构

    Java 循环结构 - for, while 及 do...while 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. Java中有三种主要的循环结构: whi ...

  6. 刘强1109 JavaScript基础二(分支与循环结构)

    [if-else结构] 1.结构的写法: if(判断条件){ 条件为true时,执行if{} } else{ 条件为false时,执行else{} } 2.注意事项: ① else{}语句块,可以根据 ...

  7. Python基础-python流程控制之循环结构(五)

    循环结构 循环结构可以减少源程序重复书写的代码量,用来描述重复执行某段算法的问题. Python中循环结构分为两类,分别是 while 和 for .. in. 一.while循环 格式1: whil ...

  8. java 基础 04 循环结构 一维数组

    内容: (1)循环结构 (2)一维数组 1.循环结构 1.1for循环 (1)语法格式 for(初始化表达式1;条件表达式2;修改初始化表达式3){ 循环体; } (2)执行流程 执行初始化表达式 = ...

  9. Shell基础(三):使用for循环结构、使用while循环结构、基于case分支编写脚本、使用Shell函数、中断及退出

    一.使用for循环结构 目标: 本案例要求编写一个Shell脚本chkhosts.sh,利用for循环来检测多个主机的存活状态,相关要求及说明如下: 1> 对192.168.4.0/24网段执行 ...

  10. 浅析PHP中for与foreach两个循环结构遍历数组的区别

    遍历一个数组是编程中最常见不过的了,这里跟大家讨论下for和foreach两种方法.用这两种方法执行遍历的场景太多太多了,这里我们只针对以下两个数组作为例子来讨论.所谓管中窥豹,多少能理清一点两者的区 ...

随机推荐

  1. kubernetes 1.27.1最新版集群部署

    kubernetes 1.27.1 最新版集群部署国内环境 官方安装部署文档:https://kubernetes.io/zh-cn/docs/setup/production-environment ...

  2. 本地锁 & 分布式锁

    引子: 解决缓存击穿问题 synchronized (this){代码块} public synchronized Map<String,List<Catelog2Vo>> g ...

  3. python使用replace将数组写入txt文本

    一 概念 1 Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次. 2 用法:str.replace ...

  4. Android 开发Day5

    展示项目 这是我的项目结构,补录的

  5. 5G+实时云渲染,助力虚拟仿真实训教学升级

    随着新冠疫情走向全球大流行的发展趋势,学校教育被迫迁徙到线上教学平台,供需平衡被打破,疫情让"在线教学"成为"口罩式的刚需". 我们看到互联网+教育带来便利的同 ...

  6. TP6框架--EasyAdmin总结:暂时的离别和新的开始

    眨眼一下,因为项目初期开发的完成,我与EasyAdmin的缘分也将迎来短暂的离别,有时候静下来,感觉时间过的好快,我从4月到现在,使用EasyAdmin进行项目开发,从一个初识别PHP的菜鸟,到一个能 ...

  7. [前端原生技术]jsonp

    [版权声明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/18031965出自[进步*于辰的博客] 在学习了Jsoup ...

  8. Redis(5)——亿级数据过滤和布隆过滤器

    一.布隆过滤器简介 上一次 我们学会了使用 HyperLogLog 来对大数据进行一个估算,它非常有价值,可以解决很多精确度不高的统计需求.但是如果我们想知道某一个值是不是已经在 HyperLogLo ...

  9. Non-local Network:人类早期在CV驯服Transformer尝试 | CVPR 2018

    Non-local操作是早期self-attention在视觉任务上的尝试,核心在于依照相似度加权其它特征对当前特征进行增强,实现方式十分简洁,为后续的很多相关研究提供了参考   来源:晓飞的算法工程 ...

  10. KingbaseES数据库批量加载数据的最佳方法

    前言 本文讨论在KingbaseES数据库服务器中批量加载数据的方法,以及空数据库中的初始数据加载和增量数据加载的最佳做法. 批量加载方法 以下数据加载方法按照从最耗时到最不耗时的顺序排列: 1.运行 ...