一、将几个数字进行拼接,拼接成字符串

一定要将""放到几个数字之前,否则就会把数字相加之后的数转化成字符串

如你需要拼接年份,月份,和日

如果:2018+12+13+"" 将会转化成 2043的字符串

改正:"'+2018+12+13 将会转化成20181213

二、如何随机获得一个范围内的整数如[x,y)

根据左右区间开闭情况,分为以下几种

[x,y)  (Math.random()*(y-x)+x)

(x,y]  (Math.random()*(y-x)+1+x)

[x,y]  还没想到

三、将一个对象传入方法中,在方法中 对该对象的操作将影响该对象。对象传入相当于指针。

四、格式化时间为的格式字符串大小写是必须严格的,不然肯定会出错

yyyy:年
MM:月
dd:日
hh:12小时制
HH:24小时制
mm:分
ss:秒
S:毫秒 五、关于通过映射给两个对象中相同名称属性赋值的问题

public static void Copy(Object source, Object dest)throws Exception {
  BeanInfo sourceBean = Introspector.getBeanInfo(source.getClass(), java.lang.Object.class);
  PropertyDescriptor[] sourceProperty = sourceBean.getPropertyDescriptors();
  BeanInfo destBean = Introspector.getBeanInfo(dest.getClass(), java.lang.Object.class);
  PropertyDescriptor[] destProperty = destBean.getPropertyDescriptors();
  try{
    for(int i=0;i<sourceProperty.length;i++){
    for(int j=0;j<destProperty.length;j++){
      if(sourceProperty[i].getName().equals(destProperty[j].getName())){

      if (!sourceProperty[i].getName().equals("class")) {
      destProperty[j].getWriteMethod().invoke(dest, sourceProperty[i].getReadMethod().invoke(source));
        break;

      }
      }
      }
    }
  }catch(Exception e){
    e.printStackTrace();
  }
  }
}

通过测试发现,在两个类中有一个相同属性,class.但是class并没有get、set方法,导致方法报错,在程序中多加一个判断条件,即可完成本功能

六、新导入一个项目,类中不报错,项目有红叉号的解决方法:右击项目->buildpath->瞎几吧乱选,看有没有那种红叉的删掉试试

七、在项目中遇到的一个有意思的代码

代码一、

for(Menu m:fatherMenu){
            //将父亲节点信息放到menuTree中
            MenuTree mt=new MenuTree();
            mt.setMenuId(m.getMenuId());
            mt.setMenuName(m.getMenuName());
            mt.setChildList(map.get(m.getMenuId()));
            treeList.add(mt);
        }

代码二、

MenuTree mt=new MenuTree();

for(Menu m:fatherMenu){
            //将父亲节点信息放到menuTree中 
            mt.setMenuId(m.getMenuId());
            mt.setMenuName(m.getMenuName());
            mt.setChildList(map.get(m.getMenuId()));
            treeList.add(mt);
        }

这两段代码的区别就是把MenuTree mt=new MenuTree()放到循环里面和循环外面的区别,但是这两个的执行结果却是完全不同的

第一段代码执行完毕之后放入treeList中的三个东西是不同的,但是第二段代码执行完毕之后放入treeList中的三个东西却是完全一样的,这就导致了错误的发生。

错误的原因:MenuTree类型的对象是一个地址,而这个地址中的属性也会分配一定的内存空间,m.getMenuId(),m.getMenuName()得到的应该是这个三个属性存放的地址,当mt这个变量中的内容发生了变化时,那么地址中的内容也就变化了,导致以前添加的也就改变了。总的来说,set方法设置的不是一个值,而是一个对象。当这个对象改变的时候,引用这个对象的东东也会变化。地址共用了。可能String的值设置成final类型就是这种原因吧,只要当前地址设置为一个值,就不会改变,避免其他引用炸了。。。。

这段代码也是同样的道理。以后写代码的时候一定要这一这种问题。

八、磁盘中明明是有文件的,但是new File却报文件找不到的错误

查看是不是隐藏了后缀。

java积累的细节问题的更多相关文章

  1. Java总结——常见Java集合实现细节(1)

    Java提高——常见Java集合实现细节(1) 2018年04月18日 15:07:35 阅读数:25 集合关系图 Set和Map set代表一种集合元素无序.集合元素不可重复的集合 map代表一种由 ...

  2. java 代码的细节优化

    前言 代码优化,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑 的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用 ...

  3. java基础部分细节

    访问控制修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java支持4种不同的访问权限. 默认的,也称为 default,在同一包内可见,不使用任何修饰符. 私有的,以  ...

  4. Java集合详解8:Java的集合类细节精讲

    Java集合详解8:Java集合类细节精讲 今天我们来探索一下Java集合类中的一些技术细节.主要是对一些比较容易被遗漏和误解的知识点做一些讲解和补充.可能不全面,还请谅解. 本文参考:http:// ...

  5. Cordova插件中JavaScript代码与Java的交互细节介绍

    在Cordova官网中有这么一张架构图:大家看右下角蓝色的矩形框"Custom Plugin"--自定义插件.意思就是如果您用Cordova打包Mobile应用时,发现您的移动应用 ...

  6. 35个Java代码优化的细节,你知道几个?

    前言 代码 优化 ,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没 ...

  7. Java 代码注意细节

    代码优化的目标是: 1.减小代码的体积 2.提高代码运行的效率 代码优化细节 1.尽量指定类.方法的final修饰符 带有final修饰符的类是不可派生的.在Java核心API中,有许多应用final ...

  8. Java 积累复习用

    1.jvm 默认编码:Java的默认编码 2.jvm heap : Java虚拟机的内存组成以及堆内存介绍 3.Java命令学习系列(一)--Jps 4.Java命令学习系列(二)--Jstack 5 ...

  9. java protected 的细节

    1. java的权限控制--大部分人都被错误洗脑了. 一个重大的坑,或者一个重大的误区,或者说一个洗脑了成千上万java编程者的错误概念就是: public private protected 是基于 ...

随机推荐

  1. 2019暑期金华集训 Day3 字符串

    自闭集训 Day3 字符串 SAM 考虑后缀树. SAM的parent树是反串的后缀树,所以后面加一个字符的时候相当于往串前面加一个字符,恰好多出了一个后缀. 于是可以以此来理解SAM. 每一条路径对 ...

  2. Navicat for MySQ中文破解版(无需激活码)

    原文链接:https://blog.csdn.net/a599174211/article/details/82795658 1.下载破解版Navicat for MySQ中文破解版 链接: http ...

  3. ROS参数服务器(Parameter Server)

    操作演示,对参数服务器的理解:点击打开链接 rosparam使得我们能够存储并操作ROS 参数服务器(Parameter Server)上的数据.参数服务器能够存储整型.浮点.布尔.字符串.字典和列表 ...

  4. Lua 常用函数 一

    lua_getallocf lua_Alloc lua_getallocf (lua_State *L, void **ud); 返回给定状态机的内存分配器函数.如果 ud 不是 NULL ,Lua ...

  5. 个人学习分布式专题(二)分布式服务治理之分布式协调技术Zookeeper

    分布式协调技术Zookeeper 2.1 zookeeper集群安装部署(略) 2.2 zookeeper的基本原理,数据模型 2.3 zookeeper Java api的使用 2.4 zookee ...

  6. 按比例吃CPU

    前几天测试软件在多核上的性能,需要按照比例吃各个CPU,查了查资料,撸了下面一小段代码: #include <unistd.h> #include <stdlib.h> #in ...

  7. MyBatis 与 Hibernate

    MyBatis 是一个优秀的基于 Java 的持久层框架,它内部封装了 JDBC,使开发者只需关注 SQL 语句本身,而不用再花费精力去处理诸如注册驱动.创建 Connection.配置 Statem ...

  8. 【Python 脚本报错】AttributeError: 'module 'yyy' has no attribute 'xxx'的解决方法

    先参考这篇记录大概理解了原因, 再深入了解下python的import机制, 发现自己的模块之间存在互相import. 比如,A.py中import B,而B.py中也import A了, 现在执行模 ...

  9. ISO/IEC 9899:2011 条款6.3.1——算术操作数

    6.3.1 算术操作数 6.3.1.1 布尔.字符以及整数 1.每个整数类型具有一个整数转换等级,如下定义: ——两个带符号的整数类型都不应该具有相同等级,即使它们具有相同的表示. ——一个带符号整数 ...

  10. 123457123457#0#-----com.yuming.YiZhiFanPai01--前拼后广--益智早教游戏记忆翻牌cym

    com.yuming.YiZhiFanPai01--前拼后广--益智早教游戏记忆翻牌cym