文档章节

小记录2-工作

业余编程人士
 业余编程人士
发布于 2017/05/27 09:45
字数 360
阅读 2
收藏 0
{
   // 扎到一个class的class path
   public static String findClassPath(Class<?> c) {
        URL url = c.getProtectionDomain().getCodeSource().getLocation();
        return url.getPath();
    }
}
  /**
  * 安全的写文件,来自rocketmq Mixall.class
  */
public static final void string2File(final String str, final String fileName) throws IOException {
        // 先写入临时文件
        String tmpFile = fileName + ".tmp";
        string2FileNotSafe(str, tmpFile); // 简单的实现函数

        // 备份之前的文件
        String bakFile = fileName + ".bak";
        String prevContent = file2String(fileName); //从之前的文件读出来
        if (prevContent != null) {
            string2FileNotSafe(prevContent, bakFile); //再写进去
        }

        // 删除正式文件
        File file = new File(fileName);
        file.delete();

        // 临时文件改为正式文件
        file = new File(tmpFile);
        file.renameTo(new File(fileName));
    }

{
  //尽量不要使用contains("songlei") 多使用indexof("songlei") >= 0

}
{
   //线程池大小控制
   private int sendMessageThreadPoolNums = 16 + Runtime.getRuntime().availableProcessors() * 4;
   private int pullMessageThreadPoolNums = 16 + Runtime.getRuntime().availableProcessors() * 2;
}
{
  syncronised(this) {
	notify(); // or notifyAll();
  }

  syncronised(this) {
    wait();  // wait 2
  }

  syncronised (this) {
    wait(); // wait 1 
  }
}

{
  thread.setDeamon(true) //在它下面子线程全部执行完成后 它自动完成 否则就一直守护着静静的在背后执行
  ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(new ThreadFactory() {
            @Override
            public Thread newThread(Runnable runnable) {
                Thread thread = new Thread(runnable, "System Clock");
                thread.setDaemon(true);
                return thread;
            }
        });
}

{
   RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean(); // 获取java 进程
   String name = runtime.getName(); // format: "pid@hostname" //得到此进程的id和名字
}

{
  Character.isWhitespace(str.charAt(i) //判断是否有空格
}

{
   private static byte charToByte(char c) {  // 将char转化成byte
      return (byte) "0123456789ABCDEF".indexOf(c);
  }
}

{

    // 让程序一开始就加载这些
    public static void init() {
        // 定义需要加载的 Helper 类
        Class<?>[] classList = {
            DatabaseHelper.class,
            EntityHelper.class,
            ActionHelper.class,
            BeanHelper.class,
            AopHelper.class,
            IocHelper.class,  // 自动加载的代码实现在静态块里面
            PluginHelper.class,
        };
    for (Class<?> cls : classList) {  // 按照顺序加载类
      ClassUtil.loadClass(cls.getName()); // Class.forName(className, isInitialized,getClassLoader());
    }
}

 

© 著作权归作者所有

上一篇: 垃圾回收
下一篇: 小记录-工作
业余编程人士
粉丝 5
博文 19
码字总数 9137
作品 0
其他
程序员
私信 提问
关于日报和周报填写的讨论

为了有效管理项目进度,方便大家总结每日和每周的工作,建议内容如下: 每日总结包括 1.计划工作: 工作1 工作2 2.未完成工作: 工作1,原因 工作2,原因 3.已完成工作: 工作1:名称,难度,...

hytcnlp
2016/07/22
11
0
如何隐藏你的 Linux 的命令行历史

不同的可行方法 前面两种方法已经在之前一篇文章中描述了。如果你已经了解,这部分可以略过。然而,如果你不了解,建议仔细阅读。 1. 在命令前插入空格 是的,没看错。在命令前面插入空格,这...

linuxprobe
2016/07/16
18
0
测试人员遇到不断变化的项目需求该如何应对?

需求频繁变更这个产生的主要原因是: 1.前期需求调研工作没有做到位,在需求调研时没有真正深入了解用户需要什么东西?用户做这个东西的目的是什么?为什么要这么做? 2.项目经理对项目掌控力...

hxlb2012
2017/07/12
0
0
Oracle 和 SQL Server 在处理 NULL 和空值之间的差异

如果你工作中用到了Oracle,你必须要留意NULL和空值的处理与SQL Server上的不同.现在让我们看些例子。 建立这张数据库表并插入记录 如你所见我们插入了4条记录,一条记录是null,一条记录是空...

oschina
2013/01/07
1K
1
在钉钉平台上开发一套设备管理系统

具备如下几个模块: 1.设备基本信息模块,可以录入、修改、查找设备的基本信息 2.设备巡检模块:制定巡检路线和巡检内容,自动报警功能。巡检记录的录入、修改、查看功能。 3.设备定期工作:...

阿拉伯666
2017/10/09
427
0

没有更多内容

加载失败,请刷新页面

加载更多

EDI 电子数据交换全解指南

EDI(Electronic Data Interchange,电子数据交换)技术使得企业与企业(B2B)实现通信自动化,帮助交易伙伴和组织更快更好地完成更多工作,并消除了人工操作带来的错误。从零售商到制造商、物...

EDI知行软件
今天
3
0
CentOS7的LVM动态扩容

# 问题 CentOS7上面的磁盘空间有点紧张,需要扩容。 解决 查询当前磁盘状态 [root@xxx ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTfd0 2:0 1 4K ...

亚林瓜子
今天
3
0
Kafka 0.8 Producer (0.9以前版本适用)

Kafka旧版本producer由scala编写,0.9以后已经废除 示例代码如下: import kafka.producer.KeyedMessage;import kafka.javaapi.producer.Producer;import kafka.producer.ProducerConfig;......

实时计算
今天
5
0
Giraph源码分析(八)—— 统计每个SuperStep中参与计算的顶点数目

作者|白松 目的:科研中,需要分析在每次迭代过程中参与计算的顶点数目,来进一步优化系统。比如,在SSSP的compute()方法最后一行,都会把当前顶点voteToHalt,即变为InActive状态。所以每次...

数澜科技
今天
6
0
Navicat 快捷键

操作 结果 ctrl+q 打开查询窗口 ctrl+/ 注释sql语句 ctrl+shift +/ 解除注释 ctrl+r 运行查询窗口的sql语句 ctrl+shift+r 只运行选中的sql语句 F6 打开一个mysql命令行窗口 ctrl+l 删除一行 ...

低至一折起
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部