• 仗剑走天涯——『那些年,我遇到的坑』


    java SE

    for—each 不能操作元素本身

    我的需求

      将只包含 1和0 的二维数组的所有元素反置,即所有1变成0、0变成1。

      原始数组:

    我的做法

      使用for—each操作数组:

    public class test {
    
        public static void main(String[] args) {
            int[][] array = {{0,0,1,1},{1,0,1,0},{1,1,0,0}};
            
            // for-each 操作
            for(int[] arr : array) {
                for(int k : arr) {
                    k ^= 1;
                }
            }
    
        }
    }

      乍一看,没啥问题。

      但是,我们来看看操作后的数组:

      数组元素完全没有变化,和原始数组一模一样。

      查了一下,for—each的底层实现是迭代器,就是在循环中拿到的是每一个元素的值(可以理解为拷贝其值),而不是每一个元素本身。

      因此,我们并不能使用for—each来对数组元素本身进行操作,只能使用数组元素本身。

    正确的做法

      使用正常的for循环,来对数组元素本身进行操作:

    public class test {
    
        public static void main(String[] args) {
            int[][] array = {{0,0,1,1},{1,0,1,0},{1,1,0,0}};
            
            // for循环操作
            for(int i=0; i<array.length; i++) {
                for(int j=0; j<array[i].length; j++) {
                    array[i][j] ^= 1;
                }
            }
            
            // 遍历
            for(int[] arr : array) {
                for(int k : arr) {
                    System.out.print(k + " ");
                }
                System.out.println();
            }
        }
    }

    运行结果:

    结论

      for—each的底层实现是迭代器,只适合拿到元素的值,然后进一步操作的情况,它并不能影响元素本身,不适合对元素本身进行操作的情况。


      持续跟新中。。。


    Maven

    Plugins里面出现红线

    错误样式:

    出错原因:

      插件没有下载完整 或 没有下载,需要下载完整依赖包。

    解决方法:

      进入 C:Usersxx.m2 epositoryorgapachemavenplugins目录下,如图:

      哪个插件有红线,就去对应的文件夹下删除所有的文件,然后重新导入插件:

       等待下载,完成之后就不会报红线了。


       持续更新中。。。


    Spring Boot

    IDEA新建项目时,没有Spring Initializr选项

    解决方法:

      在settings -> Plugins 里面搜索spring boot,勾选上,然后再重启下idea,就可以了。

      如果Plugins里面没有spring boot的话,先安装下,再勾选。


    IDEA创建spring boot项目,没有src文件也没有依赖得标签

    错误样式:

    错误原因:

      maven无法从互联网下载项目包,需要配置maven。

    解决方法:

      配置参数:将VM-options设置为:archetype=Internal

      点击OK。

      删除当前项目,重新创建,就会有src目录,如图所示:


    打包错误:xxxxx-0.0.1-SNAPSHOT.jar中没有主清单属性

    错误样式:

    解决方法:

      在pom.xml中添加如下配置,会自动检测主类。

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    打包错误:Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0...

    解决方法:

      修改maven-resources-plugin的版本。

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
    
            <!--在这里修改版本-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.4.3</version>
            </plugin>
            <!---->
    
        </plugins>
    </build>

    持续跟新中。。。

  • 相关阅读:
    GC算法 垃圾收集器
    Distinct
    生产者消费者实现
    单例模式(七种实现方法)
    【JUC】JDK1.8源码分析之AbstractQueuedSynchronizer
    【JUC】JDK1.8源码分析之ConcurrentHashMap
    【集合框架】JDK1.8源码分析之HashMap
    一个整数,它加上100后是一个完全平方数, 再加上168又是一个完全平方数,请问该数是多少?
    猴子吃桃问题:猴子第一天摘下若干个桃子, 当即吃了一半,还不过瘾,又多吃了一个; 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。 * 以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想再吃时,见只剩下一个桃子了。 求第一天共摘了多少。 * 1.程序分析:采取逆向思维的方法,从后往前推断。
    输出9*9口诀 输出9*9乘法表
  • 原文地址:https://www.cnblogs.com/ruoli-0/p/14100086.html
Copyright © 2020-2023  润新知