美文网首页
随笔-2(实习)

随笔-2(实习)

作者: wangzaiplus | 来源:发表于2017-09-02 09:50 被阅读0次

    1. Redis启动多端口,运行多实例

    redis默认启动端口 6379            
    指定多个端口 --port
    启动多端口
    redis-server --port 6380
    redis-server --port 6381
    

    2. 查看redis实例

    ps -ef | grep redis
        使用实例
    redis-cli -p 6380   (-p:指定端口)
        关闭实例
    redis-cli shutdown
        关闭指定端口实例
    redis-cli -p 6380 shutdown
    

    3. 任务列表:

    redis数据迁移:写一个redisCopyUtil工具类,实现shardedJedis集群数据库迁移功能
    优化gm后台白名单功能
    增加gm后台黑名单功能
    增加玩家ip登录限制

    • 白名单优化
      点击提交后弹窗提示成功添加白名单
      移除角色时提示确定移除或取消
      判断输入角色是否已存在并提示

    • 黑名单优化:

      • 黑名单列表:
        移除操作有bug
        角色重复√
      • 新增黑名单:
        强制角色下线功能未实现
        更新到游戏服务器有bug
        禁言天数输入合法性判断√
      • 天数
        0 -3 永久
      • 黑名单类型
        1禁言 2封号

    注:

    <c:forEach items="${ipList}" var="ipList">
        <td>${ipList}</td>
        <td><a href="javascript:void(0)" onclick="rem('')">移除</a></td>
    </c:forEach>
    forEach循环时一定注意不能忘记items="${ipList}" 中的${}........
    

    bootstrap 下拉框无法显示菜单问题:引入jquery库和bootstrp顺序问题

    sitemesh:

    • 引入sitemesh
    • WEN-INF下:decorators.xml
    • web.xml中配置过滤器

    linux密码13位
    协议sftp
    端口22

    linux tomcat:/usr/local/tomcat/bin目录下:

    • 启动:

    ./catalina.sh run(日志启动方式)
    ./startup.sh(普通启动方式)

    • 关闭

    ./shutdown.sh

    • 查看tomcat是否关闭:

    ps -ef | grep tomcat

    • 结束tomcat进程:

    kill -9 [PID]

    linux mysql:/usr/local/mysql/bin/目录下:

    • 启动:

    service mysql start

    关闭:

    service mysql stop

    重启:

    service mysqld restart

    linux下让tomcat以service方式运行 参考博文

    linux查看当前服务:

    chkconfig --list

    linux查看当前进程:

    ps -ef | grep tomcat

    linux进程后台运行:

    nohup ... &
    如:nohup ping www.ibm.com &

    项目发布时出现classnotfoundexception可能是maven项目包未导入编译路径 参考博文

        import org.slf4j.Logger;
        import org.slf4j.LoggerFactory;
        private static final Logger goallog = LoggerFactory.getLogger("logger name");
        private static final Logger logger = LoggerFactory.getLogger(SessionManager.class);
        
        <div class="input-group">
            <input type="text" class="form-control">
            <span class="input-group-btn">
                <button class="btn btn-default" type="button">Go!</button>
            </span>
        </div>
    

    jquery正则表达式验证时间

            function verifyTime(time){
            var reg = /^(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;
            var str = "#" + time;
            var str2 = $(str).val();
            var timeArr = str2.split(",");
            $.each(timeArr,function(i,value){
                if(!reg.test(value)){
                    alert("时间格式不正确!");
                    return false;
                }
            });
        }
    

    eclipse快捷键:

    • Eclipse查看某个方法被哪些类调用:

    ctrl+alt+h

    • 快速查找类

    ctrl + shift + t

    • 查看类被调用:

    右键-references-project

    • 格式化代码

    ctrl+shift+f

    • 在当前行下边创建空白

    shift+enter

    • 自动引入包和删除无用包

    ctrl+shift+o:

    • 前一个编辑的页面

    Alt+←

    • 快速显示当前类的继承结构

    Ctrl+T

    • 全局查找关键字

    ctrl + h

    异常

    Implicit super constructor FatherClass() is undefined. Must explicitly invoke another constructor

    错误原因:
    子类必须继承父类的构造方法,如果父类构造方法中没有参数传递,那么默认是不写super()继承父类的构造方法的。LinearLayout类的构造方法没有无参数的构造方法,所以,你必须继承父类有参数的构造方法,而有参数的构造方法子类必须继承,所以,你必须写super关键字来继承父类的有参数的构造方法。

        /**
         * 生成12位或16位不重复的纯数字字符串,前2位为awardLibId,后面十位或14位是随机生成的数字字符串
         * 
         * @return
         */
        public static String getRandomString(String awardLibId) {
            String codeString;
            int i = 0;
            while (true) {
                //生成12位不重复的纯数字字符串
    //          String randomStr = RandomStringUtils .randomAlphanumeric(10);
                
                //生成16位不重复的纯数字字符串
                String randomStr = RandomStringUtils .randomAlphanumeric(14);
                codeString = awardLibId + randomStr;
                if (!allCodeList.contains(codeString)) {
                    break;
                }
                i++;
                if (i > 1000000) {
                    break;
                }
            }
            return codeString;
        }
    

    Linux rz/sz命令:

        rz:将本地上传文件到服务器
        sz:发送文件到本地
    

    导入sql文件数据:

        source /tmp/database.sql;
    

    long型整数转换为int时要注意溢出问题

    确认删除操作:

        onclick="return confirm('确认删除?')"
    

    直接访问:(项目名+资源名)(非WEB-INF目录下)
    http://localhost:8080/bread/user.html

    生成兑换码:
        com.goal.war.core.tool.CreateAwardTicket
    兑换:
        com.goal.war.gift.command.GiftBagCommandHandler
    需求:
        道具信息表-简体用 id=50005 对应 exchangeCodeInfo.xml itemId
    更新exchangeCodeInfo.xml
    ErrorCode.java变更对应languageInfo.xml配置表
    xml itemLibInfo.xml itemInfo.xml    descriptionInfo.xml exchangeCodeInfo.xml    
    
    xml配置文件:
    
    Object[] requestParams = (Object[]) params.getData();
    String roleName = String.valueOf(requestParams[0]);
    String bindFriendInviteCode = String.valueOf(requestParams[1]);
    

    异常:参考博文

    eclipse使用debug模式启动不起来:

    原因:有些未清除的断点可能导致需要加载某个服务时无法通过,从而导致JBoss无法启动,从而debug模式启动不起来

    解决办法:清除掉某些断点或全部断点
    eclipse清除所有断点:run-->remove all breakpoints

    对象排序:

            Collections.sort(rankVOs, new Comparator<StarWarRankVO>() {
            @Override
            public int compare(StarWarRankVO o1, StarWarRankVO o2) {
    //              return o1.getEloPoint().compareTo(o2.getEloPoint()); 
                Integer count1 = o1.getWarCount();
                Integer count2 = o2.getWarCount();
                return count1.compareTo(count2); 
            }
        });
    

    Long转为Integer:

    先转为String再转为Integer:int aInt = Integer.valueOf(String.valueOf(aLong));

    单例模式:

        /**
         * 懒汉式单例模式-线程安全
         * @author Administrator
         *
         */
        class SingletonLazy{
            
            private SingletonLazy(){
                
            }
            
            private static SingletonLazy instance = null;
            
        //  public static synchronized SingletonLazy getInstance(){
        //      if(instance == null){
        //          instance = new SingletonLazy();
        //      }
        //      return instance;
        //  }
            
            public static SingletonLazy getInstance(){
                if(instance == null){
                    synchronized (SingletonLazy.class) {
                        instance = new SingletonLazy();
                    }
                    instance = new SingletonLazy();
                }
                return instance;
            }
            
        }
    
        /**
         * 饿汉式单例模式-天生就是线程安全的
         * @author Administrator
         *
         */
        class SingletonHungry{
            
            private SingletonHungry(){
                
            }
            
            private static final SingletonHungry instance = new SingletonHungry();
            
            public static SingletonHungry getInstance(){
                return instance;
            }
            
        }
    

    U盘复制文件不能超过4G:

    原因:U盘格式为FAT32,如果为NTFS则没问题

    解决办法:先将U盘文件备份,然后格式化U盘,选择NTFS格式,即可复制超过4G文件

    .xml 和 .properties配置文件读取方法//TODO

    将所有的换行符替换为空格,如\r,\n等:

    return str.replaceAll("[\r\n|\n|\r]", " ").trim();

    响应数据:

    params.getResponse().addParam(datas.toArray());

    推送消息到客户端:

    void com.goal.war.core.net.message.MessageDispatcher.pushToClient(int responseCommandId, Object data, Long roleId)

    客户端参数:

    RoleBean roleBean = params.getRoleBean();
    String string = params.getData().toString();

    匿名内部类:获取符合条件的xml数据

    IBeanFilter<ExchangeCodeXML> iBeanFilter = new IBeanFilter<ExchangeCodeXML>() {
            @Override
            public boolean accept(ExchangeCodeXML t) {
                if (t.getLibId().equals(libId)) {
                    return true;
                }
                return false;
            }
        };
    

    根据某个字段来查询:

    <ExchangeCodeXML> List<ExchangeCodeXML> com.goal.war.data.XMLDataCache.find(Class<ExchangeCodeXML> clazz, IBeanFilter<ExchangeCodeXML> beanFilter)

    排序:

            Collections.sort(list, new Comparator<FundXML>() {
                @Override
                public int compare(FundXML o1, FundXML o2) {
                    return o1.getId().compareTo(o2.getId());
                }
            });
    
    //发放奖励
        WARE.addToRole()
    //扣除道具
        WARE.delFromRole()
    
    Map<Integer, Integer> mapGet = StringUtil.fromJson(hasGet, new TypeToken<Map<Integer, Integer>>(){}.getType());
    
    工具类:
        org.apache.commons.io.FileUtils
        public static String readFileToString(File file, Charset encoding)将文件内容读取为字符串
    
        /**
         * 将所有的换行符替换为空格,如\r,\n等
         * 
         * @return 替换后的字符串
         */
        public static String removeNewLineChar(String str) {
            return str.replaceAll("[\\r\\n|\\n|\\r]", " ").trim();
        }
    

    相关文章

      网友评论

          本文标题:随笔-2(实习)

          本文链接:https://www.haomeiwen.com/subject/ickkcxtx.html