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

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

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

如果: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. CSPS模拟94

    我好菜啊...... %%%迪神AK 虽然考试成绩不太好,但至少能想到正解了,也不会菜到打不出暴力. T1:想了半天不会,发现直接打高精可以拿到80分,就赶紧码完扔了,结果正解是利用double避免了 ...

  2. JavaEE的ajax入门

    JavaEE的ajax入门 代码下载 链接:https://pan.baidu.com/s/1pb_sdSmV9Ncs6UIz3q2ztg 提取码:fgx6 复制这段内容后打开百度网盘手机App,操作 ...

  3. FOI冬令营 Day1

    目录 T1.全连(fc) 传送门 Code  T2.原样输出(copy) 传送门 Code  T3.不同的缩写(diff) 传送门 Code  打算把省冬的题目放上来,主要是防止自己偷懒不订正 T1. ...

  4. Arrays.toString的作用

    Arrays.toString()的作用是用来很方便地输出数组,而不用一个一个地输出数组中的元素. 这个方法是是用来将数组转换成String类型输出的,入参可以是long,float,double,i ...

  5. Tkinter 之Scale滑块标签

    一.参数说明 语法 作用 Scale(window, label="滑块") 滑块标题 Scale(window, label="滑块", from_=0) 滑 ...

  6. CentOS 修改固定IP地址

    CentOS 修改固定IP地址 参考地址:https://www.cnblogs.com/technology-huangyan/p/9146699.htmlhttps://blog.csdn.net ...

  7. bs4 string与text的区别

    用python写爬虫时,BeautifulSoup真是解析html,快速获取所需数据的神器. 这个美味汤使唤起来,屡试不爽. 在用find()方法找到特定的tag后,想获取里面的文本,可以用.text ...

  8. arcgis python 布局中所有元素平移

    # Author: ESRI # Date: July 5, 2010 # Version: ArcGIS 10.0 # Purpose: This script will loop through ...

  9. maven手动将jar包导入到本地仓库(支持多个仓库选择)

    正常我们在用maven搭建项目时,我们只需要将项目所需要的依赖配置到maven的配置文件pom.xml中即可,maven就可以去网上将jar包下载到配置的本地仓库中去.所以一般情况下我们是不需要手动安 ...

  10. python pip settools 安装基于源码 gdal安装需要c++相关库