博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
杂七杂八的小知识点(持续更新)
阅读量:3957 次
发布时间:2019-05-24

本文共 6727 字,大约阅读时间需要 22 分钟。

1、判断闰年:

if ((year%400==0) || (year%4==0 && year%100!=0))

2、得到五位数的个十百千万位的数字:

个位:num%10

十位:num/10%10
百位:num/100%10
千位:num/1000%10
万位:num/10000

3、打印图形:

外层循环控制行数,内层循环控制列数

图形:在这里插入图片描述

for (int i=0;i<3;i++){
for (int j=i+1;j<4;j++){
System.out.print(" "); } for (int j=0;j<2*i+1;j++){
System.out.print("*"); } System.out.println(); } for(int i=4;i>0;i--){
for (int j=4-i;j>0;j--){
System.out.print(" "); } for (int j=0;j<2*i-1;j++){
System.out.print("*"); } System.out.println(); }

图形:

在这里插入图片描述

for (int i=0;i<3;i++){
for (int j=i+1;j<4;j++){
System.out.print(" "); } for (int j=0;j<2*i+1;j++){
if (j==0||j==2*i){
System.out.print("*"); }else {
System.out.print(" "); } } System.out.println(); } for(int i=4;i>0;i--){
for (int j=4-i;j>0;j--){
System.out.print(" "); } for (int j=0;j<2*i-1;j++){
if (j==0||j==2*i-2){
System.out.print("*"); }else {
System.out.print(" "); } } System.out.println();

4、判断用户输入类型:

在接收输入之前判断输入的类型是否为int

if(input.hasNextInt()){
int num = input.nextInt(); System.out.println("你输入的是:"+num);}else{
System.out.println("你输入的是个锤子!");}

5、打印出数组中的所有值:

使用Arrays类的totring方法

System.out.println(Arrays.toString(nums));

示例:

public static void main(String[] args) {
int[] nums = new int[10]; Scanner input = new Scanner(System.in); for (int i=0;i

结果:

在这里插入图片描述

快速打印一个二维数组,可以使用

System.out.println(Arrays.deepToString(a));

6、遍历数组时找到要寻找的数在数组中第一次出现的下标:

加个break就好 = =

示例:

while (true){
System.out.println("请输入需要查找的整数:"); int b=0 ;//用来判断有没有找到那个数的 int a = input.nextInt(); for (int index=0;index

7、冒泡排序:

原理:

  • 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  • 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的 数。
  • 针对所有的元素重复以上的步骤,除了最后一个。
  • 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

升序排列的口诀: (既nums[j]>nums[j+1]

N个数字来排队
两两相比小靠前,
外层 循环length-1
内层循环length-i-1

外层循环控制的是:比较的轮数,外层次数为:length-1

内层循环控制的是:每次比较的轮数,第i轮(i 从0开始计算),比较次数为:length-1-i

//冒泡排序        int temp;        //外层循环控制的是,比较的轮数        //外层次数为:length-1        for(int i=0;i
nums[j+1]){
//两两相比,满足移动条件 temp=nums[j]; nums[j]=nums[j+1]; nums[j+1]=temp; } } }

8、二分查找法:

原理:首先,假设数组中元素是按升序排列,将数组中间位置的数据与查找数据比较,如果两者相等,则查找成功;否则利用中间位置记录将数组分成前、后两个子数组,如果中间位置数据大于查找数据,则进一步查找前子数组,否则进一步查 找后子数组。

重复以上过程,
直到找到满足条件的数据,则表示查找成功,
直到子数组不存在为止,表示查找不成功。

重要:

1、确定查找的范围:最大范围下标最小范围下标
2、计算中间下标 (最大+最小)/2
3、比较中间下标数据,中间下标较大,则最大下标等于中间下标-1;中间下标较小,则最大下标等于中间下标+1 (最后记得更新中间下标数据)
4、当最小下标大于最大下标时,说明数据是不存在的

//二分查找法            int[] nums = {
1, 3, 4, 5, 6, 7, 8, 9, 15}; System.out.println("请输入要查询的数据:"); int num = input.nextInt(); //关键的三个变量 //1.最小范围下标 int minIndex = 0; //2.最大范围下标 int maxIndex = nums.length - 1; //3.中间数据下标 int centerIndex = (minIndex + maxIndex) / 2; while (true) {
if (nums[centerIndex] > num) {
//中间数据较大 maxIndex = centerIndex - 1; } else if (nums[centerIndex] < num) {
//中间数据较小 minIndex = centerIndex + 1; } else {
//找到了数据 数据位置:centerIndex System.out.println("要查询的数的下标是:" + centerIndex); break; } if (minIndex > maxIndex) {
centerIndex = -1; System.out.println("未找到该数据"); break; } //当边界发生变化时,需要更新中间下标 centerIndex = (maxIndex + minIndex) / 2; // System.out.println("要查询的数的下标是:" + centerIndex);//这个查询的是每一次中间下标的变换 }

9、移动数组所有的0到数组的后边

public static void main(String[] args) {
int[] nums = {
7,3,0,1,2,0,7,0,9,6,2}; System.out.println("给定的数组nums:"+ Arrays.toString(nums)); for (int i=0;i
0;j--){
if (nums[j]==0){
//如果是最后一个是0,就break break; } if (nums[j-1] ==0){
//如果前一个是0,那么就和后一个数交换位置 nums[j-1]=nums[j]; nums[j]=0; } } } System.out.println("变换后的数组:"+Arrays.toString(nums));

10、关于“private static final long serialVersionUID = 7109220574468622594L;”

serialVersionUID 用来表明类的不同版本间的兼容性。

序列化的时候,被序列化的类要有一个唯一标记。客户端和服务端必须需要同一个对象,serialVersionUID的唯一值判定其为同一个对象。

后面的号码是自动生成的,只要是唯一的就行,通常为1,此行语句去掉在练习的时候也没有什么影响,只不过此实例类会报一个警告。将鼠标放到警告上,选择第一个解决方案,就会重新加上此行语句,后面的数字和原先的可能会不一样。

11、 request.putQueryParameter(“TemplateParam”, “{“code”:”"+code+""}");

{“RequestId”:“57EE0D40-3825-48A5-91F3-89D50B2D9438”,“Message”:“params must be [a-zA-Z0-9] for verification sms”,“Code”:“isv.INVALID_PARAMETERS”}

短信发送失败,原因:params must be [a-zA-Z0-9] for verification sms
错误原因:参数有问题
改正:
request.putQueryParameter(“TemplateParam”, “{“code”:”"+code+""}");
检查是不是少了引号

12、IDEA中找不到java EE 怎么办

1.help下面的Edit Custom Properties

2.打开向里面填入:javaee.legacy.project.wizard=true
3.重启软件,完事

13、WARNING: certificate common name “www.mysql.com” doesn’t match requested host name “dev.mysql.com”. HTTP request sent, awaiting response… 404 Not Found 2021-01-07 12:30:19 ERROR 404: Not Found.

重新输入语句:

wget http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm --no-check-certificate

wget http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm --no-check-certificate

在这里插入图片描述

14、找不到被占用的端口号对应的程序

管理员运行cmd,输入netsh winsock reset,重启电脑

15、虚拟机redis同一个IP不同端口号修改配置后在各自输入info replication角色都为master怎么办?

在要设定从机的那里输入:slaveof IP号 主机的端口号 即可,然后再输入info replication就有主从机之分了。

16、Field userService in com.qgg.controller.UserController required a bean of type ‘com.qgg.service.UserService’ that could not be found.

解决:在service的impl上加@Service

17、tk.mybatis.mapper.provider.base.BaseSelectProvider.()

在SpringBoot的启动类上,使用@MapperScan注解时引入了错误的包下的。

  正确的应该是:import tk.mybatis.spring.annotation.MapperScan;
  错误的引入了:import org.mybatis.spring.annotation.MapperScan

18、Field error in object ‘user’ on field ‘birthday’

解决方法:加上

@DateTimeFormat(pattern = "yyyy-MM-dd")

在这里插入图片描述

19、为什么DiscoveryClient没有getInstances方法

原因:DiscoveryClient导错了包了,应该导接口包

在这里插入图片描述

20、解决RabbitMQ拒绝连接

先安装otp环境再安装rabbitmq-server,电脑左下角搜索服务,找到RabbitMQ右键启动在这里插入图片描述

转载地址:http://zdozi.baihongyu.com/

你可能感兴趣的文章