【Java 学习】方法 和 一些编程案例

2023-11-17

一、概述

使用方法的好处是?

  1. 提高了代码的复用性
  2. 让程序的逻辑更清晰
package com.ith.create;

public class methoddemo1 {
    public static void main(String[] args) {
        //张工
        int c1 = sum(30,10);
        System.out.println(c1);
        //徐工
        int c2 = sum(20,30);
        System.out.println(c2);
    }
    public static int sum(int a,int b){
        int c = a+b;
        return c;
    }
}

在这里插入图片描述

二、案例

1. 计算1-n的和返回

在这里插入图片描述

package com.ith.demo;

public class test1 {
    public static void main(String[] args) {

        System.out.println("1-100的和为:" + sum(100));
        System.out.println("1-5的和为:" + sum(5));
    }
    public static int sum(int n){
        int sum = 0;
        for (int i = 0; i <= n; i++) {
            sum+=i;
        }
        return sum;
    }
}
//1-100的和为:5050
//1-5的和为:15

2. 判断整数是奇数还是偶数

在这里插入图片描述

package com.ith.demo;

public class test2 {
    public static void main(String[] args) {
    //  判断数的奇偶
        check(9);
        System.out.println("----------");
        check(100);
    }

    public static void check(int number){
        if(number%2 == 0){
            System.out.println(number + "是偶数");
        }else{
            System.out.println(number + "是奇数");
        }
    }
}
/*
9是奇数
----------
100是偶数
 */

3. 数组求最值改方法实现

需求:
把找出数组的最大值案例,改造成方法,可以支持返回任意整型数组的最大值数据。

package com.ith.demo;

public class test3 {
    public static void main(String[] args) {

        int[] ages = {23,19,45,67,86,32};
        int max = getArrayMaxData(ages);
        System.out.println("最大值数据是:" + max);
    }
    public static int getArrayMaxData(int[] arr){
        //找出数组最大值
        int max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] > max){
                max = arr[i];
            }
        }
        return max;
    }
}
/*
最大值数据是:86
 */

三、方法的内存原理

  • 方法没有被调用的时候,在方法区中的字节码文件中存放
  • 方法被调用的时候,需要进入到栈内存中运行
    在这里插入图片描述
    方法的运行区域在哪里?
    栈内存。

四、方法参数传递机制

基本类型

在传输实参给方法的形参的时候,并不是传输实参变量本身,而是传输实参变量中存储的值,这就是值传递

package com.ith.param;

public class demo1 {
    public static void main(String[] args) {
        int a = 10;
        change(a);
        System.out.println(a);//10
    }
    public static void change(int a){
        System.out.println(a);///10
        a = 20;
        System.out.println(a);//20
    }
}

1.形参和实参各指什么?

  • 形参:以方法为例,就是方法定义时的变量。
  • 实参:在方法内部定义的变量。

2.Java的参数传递机制是什么样的?

  • 值传递,传输的是实参存储的值。

引用类型

package com.ith.param;

public class demo2 {
    public static void main(String[] args) {
        int[] arrs = {10,20,30};
        change(arrs);
        System.out.println(arrs[1]);///222
    }
    public static void change(int[] arrs){
        System.out.println("方法内部:"+arrs[1]);//20
        arrs[1] = 222;
        System.out.println("方法内部:"+arrs[1]);//222
    }
}

1、基本类型和引用类型的参数在传递的时候有什么不同?

  • 都是值传递。
  • 基本类型的参数传输存储的数据值
  • 引用类型的参数传输存储的地址值

五、参数传递的案例

1. 打印整型数组内容

在这里插入图片描述

package com.ith.param;

public class test3 {
    public static void main(String[] args) {
        int[] ages = {10,20,30,40};
        printArray(ages);

        System.out.println("----------");
        int[] numbers = {1,2,3,8,30};
        printArray(numbers);

        System.out.println("----------");
        int[] numbers1 = null;
        printArray(numbers1);
    }
    public static void printArray(int[] arr){
        if(arr != null && arr.length>0){
            System.out.print(("["));
            for (int i = 0; i < arr.length; i++) {
                System.out.print(i == arr.length - 1 ? arr[i] : arr[i] + ",");
            }
            System.out.println(("]"));
        }
    }
}
/*
[10,20,30,40]
----------
[1,2,3,8,30]
----------
 */

2. 从数组中查询指定元素的索引

在这里插入图片描述

package com.ith.param;

public class test4 {
    public static void main(String[] args) {
        int [] arr = {11,22,33,44,55,77};
        int index = searchIndex(arr,77);
        System.out.println("您查询数据的索引是:" + index);
        System.out.println("-------------");
        index = searchIndex(arr,17);
        System.out.println("您查询数据的索引是:" + index);
    }
    public static int searchIndex(int[] arr,int data){
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] == data){
                return i;
            }

        }
        return -1;
    }
}
/*
您查询数据的索引是:5
-------------
您查询数据的索引是:-1
 */

3. 比较2个数组是否一样

在这里插入图片描述

package com.ith.param;

public class test5 {
    public static void main(String[] args) {
        int[] arr1 = {10,20,30};
        int[] arr2 = {10,20,30};
        System.out.println(compate(arr1, arr2));//true

    }
    public static boolean compate(int[] arr1,int[] arr2){
        if(arr1.length == arr2.length){
            for (int i = 0; i < arr1.length; i++) {
                if(arr1[i] != arr2[i]){
                    return false;
                }
            }
            return true;
        }else{
            return false;
        }

    }
}

六、方法重载

方法重载:同一个类中,出现多个方法名称相同,但是形参列表是不同的,那么这些方法就是重载方法。

package com.ith.overload;

public class demo1 {
    public static void main(String[] args) {
        fire();
        fire("小日子");
        fire("小日子",5);

    }
    public static void fire(){
        System.out.println("默认发射武器给米国");
    }

    public static void fire(String location){
        System.out.println("默认发射武器给"+location);
    }

    public static void fire(String location,int num){
        System.out.println("默认发射"+num+"枚武器给"+location);
    }
}
/*
默认发射武器给米国
默认发射武器给小日子
默认发射5枚武器给小日子
*/

1.方法重载是什么样的?

  • 同一个类中,多个方法的名称相同,形参列表不同。

2.使用方法重载的好处?

  • 对于相似功能的业务场景:可读性好,方法名称相同提示是同一类型的功能,通过形参不同实现功能差异化的选择,这是一种专业的代码设计。

3.方法重载的关键要求是什么样的?

  • 同一个类中,多个方法的名称相同,形参列表不同,其他无所谓。

4.形参列表不同指的是什么?

  • 形参的个数、类型、顺序不同。不关心形参的名称。

七、编程案例

案例一:买飞机票

需求:

  • 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
  • 机票最终优惠价格的计算方案如下︰旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。

分析:

  • 键盘录入机票的原价,仓位类型,月份信息,调用方法返回机票最终的优惠价格。
  • 方法内部应该先使用if分支判断月份是是旺季还是淡季,然后使用switch分支判断是头等舱还是经济舱。

代码:

package com.ith.demo;

import java.util.Scanner;
//机票优惠价格
public class test1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入机票原价:");
        double money = sc.nextDouble();

        System.out.println("请输入机票的月份(1-12):");
        int month = sc.nextInt();

        System.out.println("请您选择仓位类型:");
        String type = sc.next();

        System.out.println("机票优惠后的价格是 :" + calc(money, month, type));
    }

    public static double calc(double money,int month,String type){
        if(month >= 5 && month <= 10){
            switch (type) {
                case "头等舱":
                    money *= 0.9;
                    break;
                case "经济舱":
                    money *= 0.85;
                    break;
                default:
                    System.out.println("你选择的仓位有误!!!");
                    money = -1;
                    break;
            }
        }
        else if(month ==11||month == 12||( month>=1&&month<=4)){
            switch (type) {
                case "头等舱":
                    money *= 0.7;
                    break;
                case "经济舱":
                    money *= 0.65;
                    break;
                default:
                    System.out.println("你选择的仓位有误!!!");
                    money = -1;
                    break;
            }
        }
        else{
            System.out.println("您输入的月份错误!!!");
            money = -1;
        }
        return money;
    }
}
/*输出
请输入机票原价:
1000
请输入机票的月份(1-12):
12
请您选择仓位类型:
头等舱
机票优惠后的价格是:700.0
 */

案例二:找素数

需求:

  • 判断101-200之间有多少个素数,并输出所有素数。

代码:

package com.ith.demo;

public class test2 {
    public static void main(String[] args) {
        for (int i = 101; i < 200; i++) {

            //信号位:标记
            boolean flag = true;

            for (int j = 2; j < i/2; j++) {
                if(i%j==0){
                    flag = false;
                    break;
                }
            }

            if(flag){
                System.out.print (i+"\t"  );
            }
        }
    }
}
/*输出
101	103	107	109	113	127	131	137	139	149	151	157	163	167	173	179	181	191	193	197	199
 */

案例三:开发验证码

需求:

  • 定义方法实现随机产生一个5位的验证码,每位可能是数字、大写字母、小写字母。

分析:

  • 定义一个方法,生成验证码返回:方法参数是位数、方法的返回值类型是String。
  • 在方法内部使用for循环生成指定位数的随机字符,并连接起来。
  • 把连接好的随机字符作为一组验证码进行返回。

代码:

package com.ith.demo;

import java.util.Random;

public class test3 {
    public static void main(String[] args) {
        String code = createCode(5);
        System.out.println("随机验证码:" + code);
    }
    public static String createCode(int n){
        String code = " ";
        Random r = new Random();
        for(int i=0;i<n;i++){
            int type = r.nextInt(3);
            switch (type){
                case 0:
                    //大写字符
                    char ch = (char)(r.nextInt(26)+65);
                    code += ch;
                    break;
                case 1:
                    //小写字符
                    char ch1 = (char)(r.nextInt(26)+97);
                    code += ch1;
                    break;
                case 2:
                    //数字
                    code += r.nextInt(10);
                    break;

            }
        }
        return code;
    }
}
/*输出
随机验证码: QWfBk
 */

案例四:数组元素的复制

需求:

  • 把一个数组中的元素复制到另一个新数组中去。

分析:

  • 需要动态初始化一个数组,长度与原数组一样。
  • 遍历原数组的每个元素,依次赋值给新数组。

代码:

package com.ith.demo;

public class test4 {
    public static void main(String[] args) {
        int[] arr1 = {11,22,33,44};
        int[] arr2 = new int[arr1.length];
        copy(arr1,arr2);
        printArray(arr1);
        printArray(arr2);
    }

    public static void printArray(int[] arr){
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(i == arr.length - 1 ? arr[i] : arr[i] + ", ");

        }
        System.out.println("]");
    }

    public static void copy(int[] arr1,int[] arr2){
        for (int i = 0; i < arr1.length; i++) {
            arr2[i] = arr1[i];
        }
    }
}
/*输出
[11, 22, 33, 44]
[11, 22, 33, 44]
 */

案例五:评委打分

需求∶

  • 在唱歌比赛中,有6名评委给选手打分,分数范围是[0-100]之间的整数。选手的最后得分为:去掉最高分、最低分后的4个评委的平均分,请完成上述过程并计算出选手的得分。

分析:

  • 把6个评委的分数录入到程序中去---->使用数组
  • 遍历数组中每个数据,进行累加求和,并找出最高分、最低分。
  • 按照分数的计算规则算出平均分。

代码:

package com.ith.demo;

import java.util.Scanner;

public class test5 {
    public static void main(String[] args) {
        int[] scores = new int[6];

        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < scores.length; i++) {
            System.out.println("请输入第" + (i + 1) + "个评委的打分:");
            int score = sc.nextInt();
            scores[i] = score;
        }

        int max = scores[0];
        int min = scores[0];
        int sum=0;
        for (int i = 0; i < scores.length; i++) {
            if(scores[i] > max){
                max = scores[i];
            }
            if(scores[i] < max){
                max = scores[i];
            }
            sum+=scores[i];
        }

        double result = 1.0*(sum-max-min)/(scores.length-2);

        System.out.println("选手最终得分:" + result);
    }
}
/*输出
请输入第1个评委的打分:
100
请输入第2个评委的打分:
90
请输入第3个评委的打分:
77
请输入第4个评委的打分:
45
请输入第5个评委的打分:
23
请输入第6个评委的打分:
12
选手最终得分:58.75
 */

案例六:数字加密

需求:

  • 某系统的数字密码:比如1983,采用加密方式进行传输,规则如下︰先得到每位数,然后每位数都加上5,再对10求余,最后将所有数字反转,得到一串新数。

在这里插入图片描述

分析:

  • 将每位数据存入到数组中去,遍历数组每位数据按照规则进行更改,把更改后的数据从新存入到数组中。
  • 将数组的前后元素进行交换,数组中的最终元素就是加密后的结果。

代码:

package com.ith.demo;

import java.util.Scanner;

public class test6 {
    public static void main(String[] args) {

        System.out.println("请输入加密数字个数:");
        Scanner sc = new Scanner(System.in);
        int length = sc.nextInt();
        int[] arr = new int[length];

        for (int i = 0; i < arr.length; i++) {
            System.out.println("请输入加密的第" + (i + 1) + "个数字:");
            int number = sc.nextInt();
            arr[i] = number;
        }
        System.out.print("加密之前:");
        printArray(arr);

        for (int i = 0; i < arr.length; i++) {
            arr[i] = (arr[i] + 5) % 10;
        }

        for (int i = 0,j = arr.length-1; i < j; i++,j--) {
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
        System.out.print("加密之前:");
        printArray(arr);
    }
    public static void printArray(int[] arr){
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(i == arr.length - 1 ? arr[i] : arr[i] + ", ");

        }
        System.out.println("]");
    }
}
/*
请输入加密数字个数:
4
请输入加密的第1个数字:
1
请输入加密的第2个数字:
9
请输入加密的第3个数字:
8
请输入加密的第4个数字:
3
加密之前:[1, 9, 8, 3]
加密之前:[8, 3, 4, 6]

Process finished with exit code 0

 */

案例七:模拟双色球[拓展]

投注号码由6个红色球号码和1个蓝色球号码组成。红色球号码从1—33中选择;蓝色球号码从1—16中选择。
在这里插入图片描述

package com.ith.demo;

import java.util.Random;
import java.util.Scanner;

public class test7 {
    public static void main(String[] args) {
        //创造幸运号码
        int[] luckNumber = createLuckNumber();
        //printArray(luckNumber);
        //用户选号
        int[] userNumbers = userInputNumbers();
        //printArray(userNumbers);

        judge(luckNumber,userNumbers);
    }

    //随机生成中奖号码
    public static int[] createLuckNumber(){
        int[] numbers = new int[7];
        Random r=new Random();
        //以下是六个红球,1-33
        for (int i = 0; i < numbers.length-1; i++) {
            while(true){
                int data = r.nextInt(33)+1;
                boolean flag = true;
                //以下查重
                for(int j=0;j<i;j++){
                    if(data == numbers[j]){
                        flag = false;
                        break;
                    }
                }
                if(flag){
                    numbers[i] = data;
                    break;
                }
            }

        }
        //以下是一个蓝球1-16
        numbers[numbers.length-1] = r.nextInt(16) + 1;
        //返回
        return numbers;
    }

    //用户输入的号码
    public static int[] userInputNumbers(){
        int[] numbers = new int[7];
        Scanner sc = new Scanner(System.in);
        //输入六个红球
        for (int i = 0; i < numbers.length-1; i++) {
            System.out.println("请输入第" + (i + 1) + "个红球号码(1-33,要求不能重复):");
            int data = sc.nextInt();
            numbers[i] = data;
        }
        System.out.println("请输入蓝球号码(1-16):");
        numbers[6] = sc.nextInt();
        //返回
        return numbers;
    }

    //打印数组
    public static void printArray(int[] arr){
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(i == arr.length - 1 ? arr[i] : arr[i] + ", ");

        }
        System.out.println("]");
    }

    //判断是否中奖
    public static void judge(int[] luckNumbers,int[] userNumbers){
        //红球中奖个数
        int redHitNumbers = 0;
        //蓝球中奖个数
        int blueHitNumbers = 0;

        //红球中奖情况
        for (int i = 0; i < userNumbers.length-1; i++) {
            for (int j = 0; j < luckNumbers.length-1; j++) {
                if(luckNumbers[j] == userNumbers[i]){
                    redHitNumbers++;
                    break;
                }
            }
        }
        //蓝球中奖情况
        blueHitNumbers = luckNumbers[luckNumbers.length-1] == userNumbers[userNumbers.length-1] ? 1:0;

        System.out.println("中奖号码是:");
        printArray(luckNumbers);
        System.out.println("您投注的号码是:");
        printArray(userNumbers);
        System.out.println("红球中奖个数:" + redHitNumbers);
        System.out.println("蓝球"+((blueHitNumbers == 1)?"中奖了":"没中奖"));

        //计算中奖情况
        if(redHitNumbers < 3 && blueHitNumbers == 1){
            System.out.println("中奖5元!!!");
        }else if(redHitNumbers==3 && blueHitNumbers == 1 || redHitNumbers==4 && blueHitNumbers == 0 ){
            System.out.println("中奖10元!!!");
        }else if(redHitNumbers==4 && blueHitNumbers == 1 || redHitNumbers==5 && blueHitNumbers == 0 ){
            System.out.println("中奖200元!!!");
        }else if(redHitNumbers==5 && blueHitNumbers == 1){
            System.out.println("中奖3000元!!!");
        }else if(redHitNumbers==6 && blueHitNumbers == 0 ){
            System.out.println("中奖500万元!!!");
        }else if(redHitNumbers==6 && blueHitNumbers == 1 ){
            System.out.println("中奖1000万元!!!");
        }else{
            System.out.println("感谢你为福利事业做出的贡献!!");
        }


    }
}
/*
请输入第1个红球号码(1-33,要求不能重复):
1
请输入第2个红球号码(1-33,要求不能重复):
2
请输入第3个红球号码(1-33,要求不能重复):
3
请输入第4个红球号码(1-33,要求不能重复):
4
请输入第5个红球号码(1-33,要求不能重复):
5
请输入第6个红球号码(1-33,要求不能重复):
6
请输入蓝球号码(1-16):
7
中奖号码是:
[17, 28, 7, 5, 25, 20, 9]
您投注的号码是:
[1, 2, 3, 4, 5, 6, 7]
红球中奖个数:1
蓝球没中奖
感谢你为福利事业做出的贡献!!
 */
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Java 学习】方法 和 一些编程案例 的相关文章

  • 使用 Java-Large 文件查询 JSON 文件

    我正在尝试使用 java 解析下面的 JSON 文件 我需要能够 按 ID 或名称或对象中的任何字段搜索文件 也在字段中搜索空值 搜索应返回整个对象 该文件将会很大 并且搜索应该仍然很省时 id 1 name Mark Robb last
  • 在游戏框架中编写功能测试的正确方法

    在为基于 play1 2 4 的 web 应用程序编写功能测试时 我对如何正确编码感到有点困惑 困惑在于所涉及的事务边界 我在某处读到每个测试都有自己的事务 在我的应用程序中 用户可以登录并向购物车添加一些商品 然后他可以提供一个地址 以便
  • Spring boot 404错误自定义错误响应ReST

    我正在使用 Spring boot 来托管 REST API 即使浏览器正在访问 URL 以及自定义数据结构 我也希望始终发送 JSON 响应 而不是使用标准错误响应 我可以使用 ControllerAdvice 和 ExceptionHa
  • Java - 了解 PrintWriter 和刷新的需要

    好吧 首先我对所有代码表示歉意 但我觉得代码太多总比代码不够好 我正在制作一个简单的聊天客户端和印刷机 尤其是我正在努力解决的问题 使用现在的代码 它将与服务器类交互 并且完美地打印我想要打印的内容 但是 当我删除 writer flush
  • 平衡括号问题的优化解

    给定一个仅包含字符的字符串 and 判断输入字符串是否有效 输入字符串在以下情况下有效 左括号必须由相同类型的括号封闭 左括号必须按正确的顺序关闭 请注意 空字符串也被视为有效 示例1 Input Output true Example 2
  • ORMLite - join where 子句中的括号

    我想使用连接三个表QueryBuilder join and QueryBuilder joinor但我想在 where 子句中添加括号 如下所示 WHERE first table where AND second table where
  • AES BadPaddingException

    如果我使用错误的密钥或错误的盐进行解密 则会引发 BadPaddingException 我希望返回一个不正确的字符串 doFinal 导致解密方法出现异常 信息 This is just an example Unfug S F V s
  • java模拟自定义对象

    public class MainClass public void makeCall CustomObject obj new CustomObject obj testMethod 我想进行单元测试makeCall 所以我必须嘲笑Cus
  • IntelliJ Idea,如何从控制台删除java文件目录?

    当您运行文件时 它会打开控制台窗口 并且一直在顶部显示该文件所在的目录 这非常令人恼火 因为现在 为了将其他行与目录混合分开 我必须在启动任何 System out println 命令之前使用 n C Program FILEs 我想摆脱
  • 读取 Nashorn JO4 和 NativeArray

    Java调用代码 import jdk nashorn api scripting myCustomHashMap dataStore new myCustomHashMap ScriptEngineManager sem new Scri
  • 从另一个类添加 Swing 组件

    我正在学习java 我正在尝试从另一个类向我的框架添加一个菜单栏 练习将代码划分为多个类以更好地组织程序 这是我的代码示例 public class MainApp public static void main String args C
  • 添加和完成 PHP 源代码文档的工具 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有几个已完成的较旧的 PHP 项目 其中有很多内容 我想以 javadoc phpDocumentor
  • 为什么 Casbah / Java MongoDB 驱动程序最终会出现 java.lang.IllegalArgumentException?

    我使用时看到一个奇怪的问题casbah java driver 当驱动程序尝试从 mongo 创建响应时 我不断遇到以下异常 Oct 16 2012 10 45 07 AM com mongodb DBTCPConnector MyPort
  • 无法从 ViewPager 中的 Fragment 编辑 ActionBar 标题

    我有一个Activity它通过一个托管多个片段ViewPager 在活动的onCreate方法我使用以下代码来更改ActionBar title Toolbar toolbar findViewById R id toolbar setSu
  • 如何使 RSACryptoServiceProvider 在没有填充(nopadding)的情况下工作?

    我需要使 C 应用程序与 Java 应用程序兼容 Java 应用程序使用Cipher getInstance RSA ECB nopadding 初始化器使密码 ECB 和无填充 但是 在 C 中 您有 2 个填充选项 OAEP 填充或 P
  • 用什么? MVC、MVP 或 MVVM 还是……?

    我将启动一个 Java 项目来开发桌面应用程序 使用什么作为表示层模式 MVC MVP MVVM 或 如果可能的话 举一些可行的小例子 Actually the ultimate post you re looking for is thi
  • 如何使用 Kafka 发送大消息(超过 15MB)?

    我发送字符串消息到Kafka V 0 8使用 Java Producer API 如果消息大小约为 15 MB 我会得到MessageSizeTooLargeException 我尝试过设置message max bytes到 40 MB
  • Hibernate 命名查询使用 Like 和 % % 运算符?

    在我的 Hibernate JPA 示例代码中 public List
  • 如何获取 res.drawable 文件夹的路径来复制文件?

    我正在编写我的应用程序AndroidStudio 我的里面有gif文件drawable gifs文件夹 我希望将该文件复制到MediaStore Images Media单击按钮后的文件夹 目前 即使使用发布的一些答案 我也无法获取我的 g
  • 是什么让热部署成为“难题”?

    在工作中 我们经常遇到这样的问题 永久代内存不足 http www jroller com agileanswers entry preventing java s java lang例外 团队负责人认为这是 JVM 中的一个错误 与代码的

随机推荐

  • openstack实战之使用sysprep工具封装windows7镜像

    openstack实战之使用sysprep工具封装windows7镜像 在openstack云平台环境下 使用sysprep封装windows7系统主要目的是清理虚拟机的SID 避免使用同一windows7镜像克隆出的虚拟机出现相同的SID
  • hive数据表去重方法

    1 hive 0 8 0数据表去重方法 问题描述 hive的外部表test中 在若干字段上存在重复现象 现在需要将若干字段上值相同的多条记录 只保其中留一条 舍弃其余的 解决思路 1 group by的方法 首先新建与test表完全相同的新
  • 单点登录的解析和代码实现

    单点登录 系统简介 Http协议 web应用采用browser server架构 http作为通信协议 http是无状态协议 浏览器的每一次请求 服务器会独立处理 不与之前或之后的请求产生关联 这个过程用下图说明 三次请求 响应对之间没有任
  • 生成图片验证码的两种实现方式

    最近工作中 需求让新加一个图片验证码功能 其实这个功能之前自己写过 想必跟大家现在心里想到的实现方式一样 要么是通过servlet实现请求操作 要么是通过get请求实现操作 然后在后台通过session存储图片上的字符串 和之后前台请求过来
  • 什么是测试开发工程师?

    什么是测试开发工程师 测试开发工程师 Software Development Engineer in Test 简称SDET 是指那些既可以称作是开发人员 同时也负责软件开发阶段和测试周期的测试工作的技术人员 一个专业的SDET更关注软件
  • Matlab模拟仿真模糊PID(Fuzzy)

    研究项目 模糊PID Fuzzy 的仿真测试 研究内容 本篇文章主要研究如何通过matlab软件实现模糊PID Fuzzy 的仿真测试 研究材料 matlab 2017a软件 基本概念和定义 模糊量 如E EC 论域 上下限 240 240
  • Numpy中的argsort函数详解

    Numpy中的argsort函数返回的是每个元素的排序序号 但是不是很容易理解 gt gt gt dd mat 4 5 1 gt gt gt dd argsort matrix 2 0 1 一开始的时候想不明白为什么是2 0 1而不是1 2
  • 链表作业 3:多项式加法

    题目描述 实现两个一元n次多项式的加法 例如P A x 3x2 5x5 7 P B 2x2 6x3 x5 4x6 求P A P B 输入 每行是两个用空格隔开的整数m n 分别代表多项式的系数和指数 以输入0 0作为结尾 输出 每次完成一个
  • vue elementUI 日期组件 默认当前月份第一天 与 当前月份最后一天

    1 template中如下代码
  • (java)宠物商店,接口实现

    基本思想 使用一个接口作为宠物商店的标准 只要满足接口内的方法都可以实现接口进入宠物商店 本例子用yellVoice 方法作为标准 整体代码 import java util Scanner 导入Sacnner类 interface Pet
  • 画出有3个节点的树和有3个结点的二叉树的所有不同的形态

    画的难看了点
  • 【HDLBits 刷题 11】Circuits(7)Finite State Manchines 18-26

    目录 写在前面 Finite State Manchines Fsm serialdata Fsm serialdp Fsm hdlc Design a Mealy FSM ece241 2014 q5a ece241 2014 q5b 2
  • Data->Iopb->Parameters.Create.Options & FILE_DIRECTORY_FILE 判断是否为路径

    如何在minifilter 判断操作的文件对象是目录还是文件呢 有很多人发现答案是 Data gt Iopb gt Parameters Create Options FILE DIRECTORY FILE 是否成立 不过也有很多人发现 上
  • centos7 nginx 配置 ssl证书

    安装nginx 从阿里云服务器下载 nginx版本的ssl证书 防止再 etc nginx ssl 下 停止 nginx 服务 systemctl stop nginx 修改配置文件 etc nginx conf d root izm5ej
  • app离线消息推送服务器,在线消息推送和离线消息推送(3)

    首先介绍一下具体的功能设计 整个系统由服务端 客户端组成 客户端包含前端 浏览器端 pyqt桌面端 和后台 用于添加要推送的消息 因为浏览器端不容易注意到实时提醒 所以我将实时提醒功能放到pyqt桌面端中实现 如托盘区闪烁等醒目的方式 浏览
  • Unity 数据保存失败

    问题 游戏数据突然保存不了了 没有任何报错 切后台保存也出问题 编辑器上和PC端没问题 移动端上保存不了 原因 我使用的存储方式是 Newtonsoft Json 将对象转换成加密字符串并保存到本地 而不巧的是 我使用了 HashSet 这
  • BOOST升压电路原理详解

    原文来自公众号 工程师看海 BOOST升压电源是利用开关管开通和关断的时间比率 维持稳定输出的一种开关电源 它以小型 轻量和高效率的特点被广泛应用在各行业电子设备找那个 是不可缺少的一种电源架构 公众号后台回复 boost仿真文件 Boos
  • Linux 添加开机启动方法

    添加开启启动的方式一般有如下几种 第一种 把开机命令 写入到os的启动文件之中 伴随着启动文件的读取 顺便帮你把要启动的任务 一起启动了 第二种 把启动任务 放到os的启动目录下 os启动过程之中 会执行所有放在此目录下的任务 第三种 os
  • KaTeX数学公式输入

    序号 运算符 输入 举例 举例代码 1 x y
  • 【Java 学习】方法 和 一些编程案例

    文章目录 一 概述 二 案例 1 计算1 n的和返回 2 判断整数是奇数还是偶数 3 数组求最值改方法实现 三 方法的内存原理 四 方法参数传递机制 基本类型 引用类型 五 参数传递的案例 1 打印整型数组内容 2 从数组中查询指定元素的索