java se小结

1.java网络编程相关

获取虚拟机PID:

        java.lang.management.RuntimeMXBean是Java 虚拟机的运行时系统的管理接口。使用它可以获取正在运行的 Java 虚拟机等信息,包括获取PID。

 private static String populateProcessID()   

           {            /*          * runtimeMXBean.getName()取得的值包括两个部分:PID和hostname,两者用@连接。          */          

        RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();          

                        return         runtimeMXBean.getName().split("@")[0];    

          }  

 获取ip地址:

  InetAddress inet = InetAddress.getByName("www.baidu.com");
17     System.out.println(inet);
18     System.out.println(inet.getHostName());
19     System.out.println(inet.getHostAddress());
20     //获取本机信息
21     inet = InetAddress.getLocalHost();
22     System.out.println(inet);
23     System.out.println(inet.getHostName());
24     System.out.println(inet.getHostAddress());

2.Json相关(fastjson)

      list转json:String str = JSON.toJSONString(students); // List转json

      json转list:

         方法一:List<Student> students = JSON.parseArray(json,Student.class);

         方法二:List<Student> students =

JSON.parseObject(json,new TypeReference<List<Student>>(){}); // Json 转List

ps:list内的对象必须实现序列化。

3.关于string和integer 比较是否相同。

注意:严禁用==比较,使用equals。

非基本变量使用 ==都是在比较地址。

4.关于map修改values。

     HashMap<String, student> map = new HashMap<>();
        map.put("hh",new student("nyining",99));
        student hh = map.get("hh");   
//        hh.setCount(11);                ----②
//        hh=new student("doudou",77);  ----①
        System.out.println(map.get("hh"));
    }

        ①这里,不可以这样,只是改变的引用指向,参考指针。

        ②这里,是正确的,通过引用直接改变对象的属性。

5. ON DUPLICATE KEY UPDATE

        当导入的数据不存在时则进行添加,有修改时则进行更新,

        该语句是基于唯一索引或主键使用,添加字段中 无唯一索引或主键 不起作用。

        例子:

        ON DUPLICATE KEY UPDATE  后面为需要updata的字段。

<insert id="insertOrUpdateCameraInfoByOne" paramerType="com.pojo.AreaInfo">
    insert into camera_info( cameraId,zone1Id,zone1Name,zone2Id,zone2Name,zone3Id,zone3Name,zone4Id,zone4Name)
    VALUES(
        #{cameraId},#{zone1Id},#{zone1Name}
    ON DUPLICATE KEY UPDATE 
    cameraId = #{cameraId},
    zone1Id = #{zone1Id},
    zone2Id = #{zone1Name}
</insert>

6.concurrentHashMap

使用get时,get(null)会报错,因为jdk源码会null.hashcode()。

7.自定义线程名

    private static final ExecutorService TotalPullPool = Executors.newFixedThreadPool(2, MyThreadFactory.getDefinedNameThreadFactory("TotalPullPool"));

8.使用流处理list转map。

        Map<Long, User> maps = userList.stream().collect(Collectors.toMap(User::getId,Function.identity()));
        看来还是使用JDK 1.8方便一些。另外,转换成map的时候,可能出现key一样的情况,如果不指定一个覆盖规则,上面的代码是会报错的。转成map的时候,最好使用下面的方式:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值