java 01~~10

article/2025/9/1 3:23:25

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • Day01——从“Hello World”开始吧
  • Day02——基本算术操作
    • 练习:四则运算
      • 运行结果
  • Day03——基本if语句
    • 练习:求绝对值
      • 运行结果
    • 小结
  • Day04——if语句嵌套
    • 练习:闰年的计算
    • 小结
  • Day05——基本switch语句
    • 练习 : 判断分数的对应等级
      • 运行结果
    • 小结
  • Day06——基本for语句
    • 练习 :1累加到N
      • 运行结果
    • · 补充:增强型For循环
    • 小结
  • Day07——矩阵:运动的描述
    • 练习 :矩阵求和
      • 运行结果
    • ·补充说明array类
  • Day08——矩阵的乘法
    • 练习:矩阵相乘
      • 运行结果
    • 小结
  • Day09——whlie语句
    • 练习:
      • 运行结果
    • 小结
  • Day10——综合任务
    • 1.任务要求
    • 2.对任务的分析
    • 3.代码实现
      • 运行结果
    • 小结


前言

这里是JAVA自学与了解的同步笔记与记录,如有问题欢迎指正说明

I have loved the stars too fondly to be fearful of the night.


Day01——从“Hello World”开始吧

public class HelloWould {public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("Hello Would!");}// Of main
}// Of class HelloWould

Day02——基本算术操作

练习:四则运算

public class math {public static void main(String[] args) {// TODO Auto-generated method stubint tempFirstInt = 15,tempSecondInt = 4,tempResultInt;double tempFirstDouble= 1.2,tempSecondDouble = 3.5,tempResultDouble;//  +tempResultInt = tempFirstInt + tempSecondInt;tempResultDouble = tempFirstDouble + tempSecondDouble;System.out.println(tempFirstInt + " + " + tempSecondInt + " = " + tempResultInt);System.out.println(tempFirstDouble + " + " + tempSecondDouble + " = " + tempResultDouble);//  -tempResultInt = tempFirstInt - tempSecondInt;tempResultDouble = tempFirstDouble - tempSecondDouble;System.out.println(tempFirstInt + " - " + tempSecondInt + " = " + tempResultInt);System.out.println(tempFirstDouble + " - " + tempSecondDouble + " = " + tempResultDouble);//  *(乘)tempResultInt = tempFirstInt * tempSecondInt;tempResultDouble = tempFirstDouble * tempSecondDouble;System.out.println(tempFirstInt + " * " + tempSecondInt + " = " + tempResultInt);System.out.println(tempFirstDouble + " * " + tempSecondDouble + " = " + tempResultDouble);//  /(除)tempResultInt = tempFirstInt / tempSecondInt;tempResultDouble = tempFirstDouble / tempSecondDouble;System.out.println(tempFirstInt + " / " + tempSecondInt + " = " + tempResultInt);System.out.println(tempFirstDouble + " / " + tempSecondDouble + " = " + tempResultDouble);//  %(取余)tempResultInt = tempFirstInt % tempSecondInt;System.out.println(tempFirstInt + " % " + tempSecondInt + " = " + tempResultInt);}//Of main }//Of class math

运行结果


Day03——基本if语句

练习:求绝对值

public class HelloWould {public static void main(String[] args) {// TODO Auto-generated method stubint tempNumber1 = 6;System.out.println("The absolute value of " + tempNumber1 + " is " + abs(tempNumber1));int tempNumber2 = -8;System.out.println("The absolute value of " + tempNumber2 + " is " + abs(tempNumber2));}// Of mainpublic static int abs(int paraValue) {if (paraValue >= 0) {return paraValue;} else {return -paraValue;} // Of if}// Of abs
}

运行结果

在这里插入图片描述

小结

if-else语句在Java编程中较为常用,是常见的多分支语句。上段程序用于求一个整型数的绝对值,取绝对值的部分单独作为一个静态方法,通过引用方法传入实参,可让方法返回一个值,这个值即为所给数的绝对值。


Day04——if语句嵌套

练习:闰年的计算

   //闰年的判断条件:可被4整除但不能同时被100整除,或者能被400整除public class LeapYear {public static void main(String args[]) {// Test isLeapYearint tempYear = 2021;System.out.print("" + tempYear + " is ");if (!isLeapYear(tempYear)) {System.out.print("NOT ");} // Of ifSystem.out.println("a leap year.");// Test isLeapYearV2System.out.println("Now use the second version.");System.out.print("" + tempYear + " is ");if (!isLeapYearV2(tempYear)) {System.out.print("NOT ");} // Of ifSystem.out.println("a leap year.");//下面是包含双分支if—-else的方法public static boolean isLeapYear(int paraYear) {if ((paraYear % 4 == 0) && (paraYear % 100 != 0) || (paraYear % 400 == 0)) {return true;} else {return false;} // Of if}// Of isLeapYear//下面是包含多分支if-else的方法public static boolean isLeapYearV2(int paraYear) {if (paraYear % 4 != 0) {return false;} else if (paraYear % 400 == 0) {return true;} else if (paraYear % 100 == 0) {return false;} else {return true;} // Of if}// Of isLeapYearV2
}

小结

1.在一个分支中又完整的嵌套了另一个完整的分支结构,里面的分支结构称为内层分支,外面的分支结构称为外层分支。
2.嵌套最好不要超过3层,否则可读性差

Day05——基本switch语句

练习 : 判断分数的对应等级

package basic;/*** This is the fifth code. Names and comments should follow my style strictly.*/
public class SwitchStatement {public static void main(String args[]) {scoreToLevelTest();}// Of main/************************ Score to level.* * @param paraScore From 0 to 100.* @return The level from A to F.**********************/public static char scoreToLevel(int paraScore) {// E stands for error, and F stands for fail.char resultLevel = 'E';// Divide by 10, the result ranges from 0 to 10int tempDigitalLevel = paraScore / 10;// The use of break is important.switch (tempDigitalLevel) {case 10:case 9:resultLevel = 'A';break;case 8:resultLevel = 'B';break;case 7:resultLevel = 'C';break;case 6:resultLevel = 'D';break;case 5:case 4:case 3:case 2:case 1:case 0:resultLevel = 'F';break;default:resultLevel = 'E';}// Of switchreturn resultLevel;}// of scoreToLevel/************************ Method unit test.**********************/public static void scoreToLevelTest() {int tempScore = 100;System.out.println("Score " + tempScore + " to level is: " + scoreToLevel(tempScore));tempScore = 91;System.out.println("Score " + tempScore + " to level is: " + scoreToLevel(tempScore));tempScore = 82;System.out.println("Score " + tempScore + " to level is: " + scoreToLevel(tempScore));tempScore = 75;System.out.println("Score " + tempScore + " to level is: " + scoreToLevel(tempScore));tempScore = 66;System.out.println("Score " + tempScore + " to level is: " + scoreToLevel(tempScore));tempScore = 52;System.out.println("Score " + tempScore + " to level is: " + scoreToLevel(tempScore));tempScore = 8;System.out.println("Score " + tempScore + " to level is: " + scoreToLevel(tempScore));tempScore = 120;System.out.println("Score " + tempScore + " to level is: " + scoreToLevel(tempScore));}// Of scoreToLevelTest
}// Of class SwitchStatement

运行结果

在这里插入图片描述

小结

1.switch(表达式)中,表达式的数据类型应该和case后的常量类型一致,或者是可以自动转换成可以相互比较的类型,如常量为int,而输入是字符。
2.switch(表达式)中,表达式的返回值必须是:(byte,short,int,char,String,enum(枚举))
3.case子句中的值必须是常量,而不能是变量
4.可以没有default
5.break语句执行后跳出该switch。如果没有break,则程序会顺序执行到switch结尾

Day06——基本for语句

练习 :1累加到N


public class e_for {public static void main(String[] args) {// TODO Auto-generated method stubforStatementTest();}// of mainpublic static void forStatementTest() {int tempN = 10;System.out.println("1 add to " + tempN + " is: " + addToN(tempN));tempN = 0;System.out.println("1 add to " + tempN + " is: " + addToN(tempN));int tempStepLength = 1;tempN = 10;System.out.println("1 add to " + tempN + " with step length " + tempStepLength +" is: " +addToNWithStepLength(tempN, tempStepLength));tempStepLength = 2;System.out.println("1 add to " + tempN + " with step length " + tempStepLength +" is: " + addToNWithStepLength(tempN, tempStepLength));}// of forStatementTestpublic static int addToN(int paraN) {int resultSum = 0;for (int i = 1; i <= paraN; i++) {resultSum += i;} // of for ireturn resultSum;}// of addToNpublic static int addToNWithStepLength(int paraN, int paraStepLength) {int resultSum = 0;for (int i = 1; i <= paraN; i += paraStepLength) {resultSum += i;} // of for ireturn resultSum;}// of addToNWithStepLength}// of class

运行结果

在这里插入图片描述

· 补充:增强型For循环

1.形式如下

for(声明语句 : 表达式)
{//代码句子
}

2.声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配(即与表达式中的数据结构集合中的每个子项的类型匹配)。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

3.具体用法

public class Test {public static void main(String[] args) {int[] numbers = { 10, 20, 30, 40, 50 }; // Create a int arrayfor (int x : numbers) { // Get the elements in the array in orderSystem.out.print(x);System.out.print(",");}System.out.print("\n");String[] names = { "James", "Larry", "Tom", "Lacy" }; // Create a string arrayfor (String name : names) {System.out.print(name);System.out.print(",");}}
}

4.运行结果
在这里插入图片描述

5.需注意:
for(val : array)的遍历之下的每个val值是仅仅可读的,但是不可写,val只能用来获取而无法通过修改val来修改array对于中的数据。即读取的val不是这个array中那个对应数的地址,因此修改val无法改动到array。

小结

1.尝试使用主方法与一般方法分离的模式编程,main函数只负责简单的驱动作用。优点:能使主方法代码规模更小,看起来更简洁,主方法与一般方法的引用和被引用关系更明确,利于提高工作效率。
2.循环条件是能返回一个布尔值的表达式。
3.for(; 循环条件 ;)中的初始化和变量迭代可以写在其他地方,但是两边的分号不能省略。
4. 循环的初始化可以有多条初始化语句,但要求数据类型一致,并且中间用逗号隔开。

Day07——矩阵:运动的描述

1.动态创建:

//一维数组
dataType[] arrayRefVar = new dataType[arraySize];
//1.使用dataType[arraySize]创建了一个数组
//2.把创建的数组的引用赋值给变量 arrayRefVar//二维数组
dataType[][] arrayRefVar = new dataType[arrayHeight][arrayWidth];

2.静态创建:

dataType[10] arrayRefVar1;
dataType[10][20] arrayRefVar1;
double[] arrayRefVar2 = {1.2, 2.3, 3.4};

练习 :矩阵求和


import java.util.Arrays;public class e_array {//主方法负责驱动函数public static void main(String args[]) {matrixElementSumTest();matrixAdditionTest();}// Of main//函数功能:将传入的二维数组内的每一个元素求和,并返回这个和public static int matrixElementSum(int[][] paraMatrix) {int resultSum = 0;for (int i = 0; i < paraMatrix.length; i++) {for (int j = 0; j < paraMatrix[0].length; j++) {resultSum += paraMatrix[i][j];} // Of for j} // Of for ireturn resultSum;}// Of matrixElementSum/************************ Unit test for respective method.**********************/// 通过两个for循环嵌套使用,给矩阵tempMatrix赋初值public static void matrixElementSumTest() {int[][] tempMatrix = new int[3][4];for (int i = 0; i < tempMatrix.length; i++) {for (int j = 0; j < tempMatrix[0].length; j++) {tempMatrix[i][j] = i * 10 + j;} // Of for j} // Of for iSystem.out.println("The matrix is: \r\n" + Arrays.deepToString(tempMatrix));System.out.println("The matrix sum is: " + matrixElementSum(tempMatrix) + "\r\n");}// Of matrixElementSumTest//两个for循环嵌套,实现两个矩阵的相加,即为其对应元素的相加public static int[][] matrixAddition(int[][] paraMatrix1, int[][] paraMatrix2) {if (paraMatrix1.length != paraMatrix2.length || paraMatrix1[0].length != paraMatrix2[0].length) {System.out.println("Error! Two matrixs must have same height and width! ");}int[][] resultMatrix = new int[paraMatrix1.length][paraMatrix1[0].length];for (int i = 0; i < paraMatrix1.length; i++) {for (int j = 0; j < paraMatrix1[0].length; j++) {resultMatrix[i][j] = paraMatrix1[i][j] + paraMatrix2[i][j];} // Of for j} // Of for ireturn resultMatrix;}// Of matroxAdditionpublic static void matrixAdditionTest() {int[][] tempMatrix = new int[3][4];for (int i = 0; i < tempMatrix.length; i++) {for (int j = 0; j < tempMatrix[0].length; j++) {tempMatrix[i][j] = i * 10 + j;} // Of for j} // Of for iSystem.out.println("The matrix is: \r\n" + Arrays.deepToString(tempMatrix));int[][] tempNewMatrix = matrixAddition(tempMatrix, tempMatrix);System.out.println("The new matrix is: \r\n" + Arrays.deepToString(tempNewMatrix));}// Of matrixAddtionTest}// Of class MatrixAddtion

运行结果

在这里插入图片描述

注意:
1.paraMatrix.length 表示矩阵的宽,即行数
2.paraMatrix[0].length 表示矩阵第一行的长度
3.具体遍历的话,基本所有语言的二维存储都是采用行优先的存储,而普遍的遍历都是先行后列的遍历思想

·补充说明array类

1.排序数组的方法
public static void sort(Object[] a)
对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。
Arrays.sort(tempArrays); //正序排tempArrays
Arrays.sort(tempArrays,Collections.reverseOrder()); //逆序排tempArrays
Arrays.sort(tempArrays, i, j);//正序对tempArrays的i到j位置进行排序

2.填充操作
public static void fill(int[] a, int val)
将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。
3.快速遍历
Arrays.toString(Object[] array)
功能:返回数组的字符串形式

        int[] nums = {2,5,0,4,1,-10};System.out.println(Arrays.toString(nums));/** 结果:[2, 5, 0, 4, 1, -10]*/

Arrays.deepToString(Object[][] arrays)
功能:返回多维数组的字符串形式

int[][] nums = {{1,2},{3,4}};System.out.println(Arrays.deepToString(nums));/** 结果:[[1, 2], [3, 4]]*/

Day08——矩阵的乘法

练习:矩阵相乘

目标:1.可以判断两个矩阵是否能相乘,即是否符合第一个矩阵的列数等于第二个矩阵的行数
2.创建矩阵后用for循环给矩阵赋初值
3.三个for循环嵌套使用,第一层拿到A矩阵的逐行,第二层拿到B矩阵的逐列,最内层实现
求和

package basic;import java.util.Arrays;public class MatrixMultiplication {public static void main(String args[]) {matrixMultiplicationTest();}// Of main//矩阵相乘实现方法public static int[][] multiplication(int[][] paraFirstMatrix, int[][] paraSecondMatrix) {int m = paraFirstMatrix.length;int n = paraFirstMatrix[0].length;int p = paraSecondMatrix[0].length;// Step 1. Dimension check.if (paraSecondMatrix.length != n) {System.out.println("The two matrices cannot be multiplied.");return null;} // Of if// Step 2. The loop.int[][] resultMatrix = new int[m][p];for (int i = 0; i < m; i++) {for (int j = 0; j < p; j++) {for (int k = 0; k < n; k++) {resultMatrix[i][j] += paraFirstMatrix[i][k] * paraSecondMatrix[k][j];} // Of for k} // Of for j} // Of for ireturn resultMatrix;}// Of multiplication/************************ Unit test for respective method.**********************///初始化矩阵1public static void matrixMultiplicationTest() {int[][] tempFirstMatrix = new int[2][3];for (int i = 0; i < tempFirstMatrix.length; i++) {for (int j = 0; j < tempFirstMatrix[0].length; j++) {tempFirstMatrix[i][j] = i + j;} // Of for j} // Of for iSystem.out.println("The first matrix is: \r\n" + Arrays.deepToString(tempFirstMatrix));//初始化矩阵2int[][] tempSecondMatrix = new int[3][2];for (int i = 0; i < tempSecondMatrix.length; i++) {for (int j = 0; j < tempSecondMatrix[0].length; j++) {tempSecondMatrix[i][j] = i + j;} // Of for j} // Of for iSystem.out.println("The second matrix is: \r\n" + Arrays.deepToString(tempSecondMatrix));int[][] tempThirdMatrix = multiplication(tempFirstMatrix, tempSecondMatrix);System.out.println("The third matrix is: \r\n" + Arrays.deepToString(tempThirdMatrix));System.out.println("Trying to multiply the first matrix with itself.\r\n");tempThirdMatrix = multiplication(tempFirstMatrix, tempFirstMatrix);System.out.println("The result matrix is: \r\n" + Arrays.deepToString(tempThirdMatrix));}// Of matrixMultiplicationTest}// Of matrixMultiplication

运行结果

在这里插入图片描述

小结

1.\r\n相当于硬回车,会另起一行。\n\r会在中间空出一行后在另起一行

Day09——whlie语句

练习:

package good_better;import java.util.PrimitiveIterator.OfDouble;/*** The usage of the sth.** @author Wanxiang Luo 2858442831@qq.com*/public class e_while {/*** ********************** The entrance of the program.** @param args**********************/public static void main(String[] args) {// TODO Auto-generated method stubwhileStatementTest();}// of mainpublic static void whileStatementTest() {int tempMax  = 100;int tempValue = 0;int tempSum = 0;// Approach 1while (tempSum <= tempMax ) {tempValue++;tempSum += tempValue;System.out.println("tempValue = " + tempValue + ",tempSum = " + tempSum);}// of while tempSum -= tempValue;System.out.println("The sum not exceeding " + tempMax + " is: " + tempSum);// Approach 2System.out.println("\r\n second approach.");tempValue = 0;tempSum = 0;while (true) {tempValue++;tempSum += tempValue;System.out.println("tempValue = " + tempValue + ",tempSum = " + tempSum);if (tempMax < tempSum) {break;}//of if }// of whiletempSum -= tempValue;System.out.println("The sum not exceeding " + tempMax + " is: " + tempSum);}// of whlieStatementTest}

运行结果

在这里插入图片描述

小结

1.方法1每次循环判断()内的循环条件是否为真,若为true,则执行一次循环体。方法2的循环条件一直为真,循环体内设置if语句进行判断,一旦满足条件则即刻跳出当前while循环。
2.while 语句本质上比 for 更基础, 因此可以替代后者. 但 for 在很多时候更方便.

Day10——综合任务

1.任务要求

学生的成绩存放于一个矩阵,其中行表示学生,列表示科目。如:第 0 行表示第 0 个学生的数学、语文、英语成绩。要求:1.进行学生成绩的随机生成, 区间为 [50, 100].
2.找出成绩最好、最差的同学。但有挂科的同学不参加评比.

2.对任务的分析

1.每个学生的科目都是三科,故可将数据放入一个m*3的矩阵。
2.通过一个数组来统计每个学生的成绩总和,得到最低成绩和最高成绩
3.运用Java提供的Random库解随机数生成的问题:

java Random.nextInt()方法
public int nextInt(int n)
该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n

对于本次任务还需注意:
1.随机数生成区间前闭后开,故无法生成n
2.指定[a,b)区间的生成:a + temRandom.nextInt(b - a);
3.数据是整型不是浮点型

3.代码实现

package good_better;import java.util.Arrays;
import java.util.Random;/***The usage of the sth.** @author Wanxiang Luo 2858442831@qq.com*/public class randomData {/*** **********************The entrance of the program.** @param args**********************/public static void main(String[] args) {// TODO Auto-generated method stubtask1();}public static void task1() {// Step 1. Generate the date with n student and m course.// Set these value by yourself.int n = 10;int m = 3;int lowerBound = 50;int upperBound = 101;int threshold = 60;// Here we have to use an object to generate random numbersRandom temRandom = new Random();int[][] data = new int[n][m];for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {data[i][j] = lowerBound + temRandom.nextInt(upperBound - lowerBound);//生成50到101间的随机数} // Of for j} // Of for iSystem.out.println("The data is:\r\n" + Arrays.deepToString(data));// Step 2.Compute the total score of each student.int[] totalScores = new int[n];for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (data[i][j] < threshold) {totalScores[i] = 0;break;//有挂科的同学不参与统计,以0代替} // Of iftotalScores[i] += data[i][j];} // Of for j} // Of for iSystem.out.println("The total scores are:\r\n" + Arrays.toString(totalScores));// Step 3. Find the best and worst student.// Typical initialization for index: invalid value.int tempBestIndex = -1;int tempWorstIndex = -1;// Typical initialization for best and worst values.// They must be replaced by valid values.int tempBestScore = 0;int tempWorstScore = m * upperBound + 1;for (int i = 0; i < n; i++) {// Do not consider failed students.if (totalScores[i] == 0) {continue;} // Of ifif (tempBestScore < totalScores[i]) {tempBestScore = totalScores[i];tempBestIndex = i;} // Of if// Attention: This if Statememt cannot be combined with the last one// using "else if",because a student can be both the best and the// worst. I found this bug while setting upperBound = 65.if (tempWorstScore > totalScores[i]) {tempWorstScore = totalScores[i];tempWorstIndex = i;} // Of if} // Of for i// Step 4. Output the student number and score.if (tempBestIndex == -1) {System.out.println("Cannot find best student. All student have failed.");} else {System.out.println("The best Student is No." + tempBestIndex + " with scores: "+ Arrays.toString(data[tempBestIndex]));} // Of ifif (tempWorstIndex == -1) {System.out.println("Cannot find worst student. All student have failed.");} else {System.out.println("The worst Student is No." + tempWorstIndex + " with scores: "+ Arrays.toString(data[tempWorstIndex]));} // Of if}// Of task1}

运行结果

测试了两组不同的结果
在这里插入图片描述
在这里插入图片描述

小结

1.step 3中不能用if-else结构囊括求极大值和求极小值方案,因为学生的成绩可能同时是最高分和最低分。
2.step 3中使用了编程中常见得不能再常见的求极值方案——通过给预求极值设定一个反方向的最极限值(说人话就是给最大值设定一个能取的最小值为初始值,给最小值设定一个能取的最大值为初始值)
3.前十天进行了基本语法的学习,可以看出每日的难度和代码长度都在逐步递增。下一步的学习任务,是对数据结构的复习和加深认识。每一次的学习都是点亮一个又一个的知识点,但不要忘了还需将这些知识点串联起来,才能形成更高效有序的’网’。以后的学习,我会拆分较难理解的方面成一个个更小的知识点,逐步理解拾级而上。


http://chatgpt.dhexx.cn/article/TW6FBPQB.shtml

相关文章

Java-10

学习来源&#xff1a;日撸 Java 三百行&#xff08;31-40天&#xff0c;图&#xff09;_闵帆的博客-CSDN博客 33 图的广度优先遍历 33.1与树的广度优先遍历类似。 33.2为每个核心方法写一个测试方法。这叫单元测试。 代码&#xff1a; /********************** Breadth fi…

Java 10 新特性解读

前言  2018年3月21日&#xff0c;Oracle官方宣布Java10正式发布。  需要注意的是 Java 9 和 Java 10 都不是 LTS (Long-Term-Support) 版本。和过去的 Java 大版本升级不同&#xff0c;这两个只有半年左右的开发和维护期。而未 来的 Java 11&#xff0c;也就是 18.9 LTS&am…

【小家java】java10新特性(简述十大新特性) 小步迭代

相关阅读 【小家java】java5新特性&#xff08;简述十大新特性&#xff09; 重要一跃 【小家java】java6新特性&#xff08;简述十大新特性&#xff09; 鸡肋升级 【小家java】java7新特性&#xff08;简述八大新特性&#xff09; 不温不火 【小家java】java8新特性&#xff0…

IP地址与端口Port

IP地址 IP地址&#xff1a;InetAddress 唯一定位一台网络上的计算机127.0.0.1 &#xff08;本机localhost&#xff09; IP地址的分类 IPv4&#xff1a;网际协议版本4&#xff08;英语&#xff1a;InternetProtocolversion4&#xff0c;IPv4&#xff09;&#xff0c;又称互联网…

Port端口

一、端口号的定义 端口表示当前计算机上的一个进程。 例如&#xff1a;手机开着 微信 王者 QQ 这时候我们使用QQ给对方发送一条消息&#xff0c;这时我们要知道对方的ip地址&#xff0c;这样才能到达指定的位置&#xff0c;但是消息到了指定位置&#xff0c;又怎么知道这个消…

linux普通用户使用1024以下的端口(80)

linux对于非root权限用户不能使用1024以下的端口&#xff0c;对于一些服务&#xff0c;过高的权限&#xff0c;会带来一定的风险。那么对于低权限的用户如何对外开放1024以下的端口。我这里找到几种办法并且亲测可行 首先搭建环境centos7 账户tengine没有sudo 权限 1.nginx 等…

价值连城的神站:广西图书馆的电子资源(视频、书、期刊...)

网站地址&#xff1a;http://wap.gxlib.org.cn:9080/ermsClient/browse.do广西壮族自治区图书馆的电子资源平台&#xff0c;该平台开放注册&#xff0c;注册登录成功后可以免费使用平台内的所有资源。该平台的资源库异常丰富&#xff0c;可以说是在线图书馆该有的资源这里都有了…

IMC美丽链:区块链与世界上最大的酿酒商的恩怨情仇!

酒业巨头Anheuser-Busch InBev旨在通过区块链技术改变数字广告供应链。 现在我们在网上&#xff0c;到处都可以看到广告。但是其实很多都是欺诈信息&#xff0c;比如我们上网站购物&#xff0c;可能就会遇到有欺诈广告&#xff0c;导致我们买到假货。 或者是我们在网上搜索&a…

2021年中国苹果行业产业链分析:上下游市场稳定,苹果行业市场运行情况平稳增长 [图]

一、概述 苹果目前是世界四大水果之首&#xff0c;苹果产业链上游主要由种子、肥料、农药等构成&#xff0c;下游主要加工成果脯、苹果干、苹果酒和苹果醋等。 苹果产业链 资料来源&#xff1a;智研咨询整理 二、上游产业 化肥是农业生产中一种十分常见的生产资料&#xff0c;…

这两个世界此次对决之后,“互联网+”与数字化真的要来了

昨天&#xff0c;微信上一个朋友忧心忡忡的问了我一个问题&#xff0c;“这次疫情对传统企业影响巨大&#xff0c;好多企业迟迟不能复工&#xff0c;面临生死存亡的挑战。你觉得这对于我们这样的数字化转型服务的公司来说&#xff0c;会有什么影响呢&#xff1f;” 我的回答是…

说出来你可能不信,现在连酒厂都在招算法工程师

原创&#xff1a;HyperAI超神经 关键词&#xff1a;啤酒 智能酿造 根据数据显示&#xff0c;从 1960 年代至今&#xff0c;啤酒的受欢迎程度每年增加&#xff0c;逐渐成为了消耗量最大的饮品之一。 到 2017 年的统计数据&#xff0c;中国人均啤酒年消耗达到了 60 瓶之多。…

中国企业软件必然革命世界企业软件

&#xff08;1&#xff09;先扯点没用的&#xff1a;宏观经济环境 三架马车&#xff1a;出口、固定资产投资、消费。 我丝毫不怀疑中国会在2035年&#xff0c;GDP超过美国。也就是说&#xff0c;我们总体来说&#xff0c;坐在中国这艘上升发展的飞机上&#xff0c;享受着红利。…

[机器学习笔记] 用Python分析:红葡萄酒质量分析(数据探索)

用Python分析&#xff1a;红葡萄酒质量分析&#xff08;数据探索&#xff09; 数据集&#xff1a;winemag-data_first150k.csv 先来导入数据 import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt import statsmodels.api as sm …

区块链 - 区块链基础知识:交易哈希链

区块链 - 区块链基础知识&#xff1a;深入了解交易哈希链 本文的主题是执行有关交易哈希链、 交易池的角色以及 一个最长的区块链如何永远占据主导。 讨论的细节包括以下内容&#xff1a; 事务哈希链的实现细节 交易池的角色 为什么需要共识算法 PoW vs PoS为什么最长的区块…

2018世界杯热点运营活动案例剖析

一、产品与活动概况 此次选取的产品除了本品同程艺龙(微信火车票机票)外,还包括全民应用支付宝和美团。其中本品世界杯主题的运营活动是“支持你的主队-赢球衣”,支付宝的是“猜世界杯-赢蚂蚁积分”,美团的是“燃烧看球-竞猜赢百万大奖”。 1. 同程艺龙:“支持你的主队…

翼次元空间资讯:区块链互联网酒业“心直酒快”有动作

本文由BitCOO、4COO全球运营官社区网络中国区节点与TokenRiseValueBoost | Chain产业链、FUND、Value与BrandFin品牌价值燃焕力中心、FintechX金融科技发展中心、孵化器WiTx链智星云 翼次元空间 Ai&Hi_AiHi/AiHiX研究中心授权发布 —— 由FinRise奋睿资本投资、翼次元空间孵…

黄铭钧:院长创业与酒

采访 | Rosalie 录音整理 | 储鑫垚 作者 | 朱芳文、刘韧 来源 | 链英雄 黄铭钧的自画像 “仗义&#xff1f;什么仗义&#xff1f;” “像乔峰&#xff1f;不可能。” 新加坡科学院院士&#xff0c;新国大计算机学院前院长、世界顶级数据库专家黄铭钧&#xff08; Beng Chin Ooi…

解密小米生态链:从构建到定义产品

1990年的雷军 互联网界有这样一种共识&#xff1a;十亿美元做产品&#xff0c;百亿美元做平台&#xff0c;千亿美元做生态。 纵观当前中国互联网企业&#xff0c;真正能够称得上形成生态的企业不过ATM三家而已&#xff0c;这也是为什么我相信小米值1000亿美金。 每一波互联网…

链读推荐:从瓷砖到生成式 NFT

Erick Calderon&#xff0c;又名“Snowfro”&#xff0c;一年前作为NFT生成艺术平台Art Blocks的创建者一举成名。但他的加密之旅是一个迂回的过程。 在与父亲一起创立的瓷砖公司工作了近十年后&#xff0c;Calderon在2013年第一次从他的兄弟那里听说了比特币。开车&#xff0…

我与世界杯足球那些事——世界杯征文

征文活动链接&#xff1a; https://bbs.csdn.net/topics/609601920 目录 第一次了解世界杯 第一次观看世界杯 世界杯主题曲 我最热爱的球员 今年世界杯 预测冠军 第一次了解世界杯 提起世界杯&#xff0c;我可能了解的比较晚一些&#xff0c;是在2014年的巴西世界杯的时…