问题列表

 

1、通过listener监听进行事件的构建,或者进行observer设计模式实现

2、Tomcat可以认为是servlet的容器管理,需要遵守servlet规范所以这也是为什么他采用了NIO的管道复用依然性能不如netty的原因。内置leader模块进行类加载的管理,container用于servlet的生命周期管理,service是对服务的封装用于提供服务,connector监听请求传递给container进行处理,server是整个tomcat服务器用于接口监听容器启动和停止。另外tomcat提供了jsp解析的功能。

4、1)netty作为jar包引入,2)注解netty调度类,3)netty的初始化类,4)信息接受类,5)添加监听类加载netty配置文件

5、设置工作量的字段通过该字段来统计工作量,使用排他网关按照工作量进行路由的判断选择要执行的流程路径。

6、条件概率是指一件事在另一件事发生的情况下发生的概率。

7、日志使用aop日志管理

8、Seriallizable是为了保存在内存中的各种对象的状态,并且可以把保存的对象状态再读出来。便于序列化传输。equales是指文本值相同,==是指引用地址一样,==为true则equales为true,反之不成立。

9、实体类需要实现Comparator接口并重写compare方法。或者实现Comparable接口重写compareTo方法。如果要使用集合类直接sort进行排序就要实现Comparable接口。

10、javascript的同源策略的限制,浏览器不能执行其他网站的脚本。

11、请求的记录,每个请求找出唯一性的鉴别条件可能是主信息或者是一个流水号,每次请求的时候会判断该唯一性鉴别条件是否已经请求过,如果请求过就不进行变更,如果仅仅是查询操作可以不做处理。

12、@Transactional 可以作用在接口、类、类方法。失效的原因有@Transactional作用在非public方法上;当前事务被设置为挂起;非事务调用事务方法;数据库不支持事务。

13、设置FAIL_ON_EMPTY_BEANS属性,告诉Jackson空对象不要抛异常,不要报出异常。
使用@JsonIgnoreProperties注解,不产生多余字段。

14、默认/error请求为错误请求;BasicErrorController,这个类是默认处理/error请求的,它包含errorHtml和error两个方法,前者返回ModelAndView,后者返回json数据。Controller处理异常的方法上加上@ExceptionHandler;或者通过@ControllerAdvice 注解来处理统一错误。自定义一个异常处理类加上@ControllerAdvice注解,通过@ExceptionHandler(指定异常类)触发不同的处理方法。

15、GIT账号基本作为代码查看下载用。

16、在数据治理的层面主数据要统一管理统一维护。

17、阅读过spring和java源码。源码的体会就是一般源码都比较精简,比较麻烦的是找实现类需要借助debug。有些native方法难以查看。用idea查看源码比较方便,看源码的时候可以借助其他资料,系统的了解设计模式有助于源码的阅读。

18、前后端分离后端可以使用aop进行日志收集,可以借助浏览器的开发工具判断是前端还是后端异常,如果是后端异常就跟踪后端的日志。

19、

package com.example.dews.controller;

import java.util.ArrayList;


public class test {

    public static void main(String[] args) {
        int n=3;
        int[] arr = new int[n];
        for(int i=0;i < n;i++){
            arr[i] = i+1;
        }
        ArrayList<String> list = new ArrayList<>();
        getResult(list,arr,0,n);
        for(int i = 0 ; i != list.size() ; i ++){
            System.out.println(list.get(i));
        }
        list.clear();
    }

    static void getResult(ArrayList<String> answers,int[] cs,int start,int len){
        if(start == len ){
            answers.add(getStr(cs));
            return;
        }
        for(int i = start ; i != len ; i ++){
            swap(cs,i,start);
            getResult(answers,cs,start+1,len);
            swap(cs,i,start);
        }
    }

    private static String getStr(int[] cs) {
        String str = "";
        for(int i=0;i<cs.length;i++){
            str+=cs[i];
        }
        return str;
    }

    static void swap(int[] cs , int i , int j){
        int t;
        t = cs[i];
        cs[i] = cs[j];
        cs[j] = t;
    }
}

20、

package com.test.aa;

public abstract class AbstractCount {

    protected AbstractCount abs;
        
    public AbstractCount next(AbstractCount abs) {
        this.abs = abs;
        return this;
    }

    public abstract void getReward(double sum);
    
}

 

 

 

 

 

 

 

 

package com.test.aa;

public class CountTest {
    
    public static void main(String[] args) {
        TenCount ten = new TenCount();
        ten.next(
                new TwentyCount().next(
                        new ThirtyCount().next(
                                new FortyCount().next(
                                        new HandrdCount()))));

        
        //单位:万元
        ten.getReward(100);
    
        
    }
}
class TenCount extends AbstractCount{

    @Override
    public void getReward(double sum) {
        if(sum>0&&sum<=10){
            System.out.println(0.1*sum);
            return ;    
        }
        
        if(null!=abs){
            abs.getReward(sum);
        }else{
            System.out.println("error1");
        }
        
    }
}
class TwentyCount extends AbstractCount{

    @Override
    public void getReward(double sum) {
        
        if(sum<=20&&sum>10){
            System.out.println(0.075*(sum-10)+0.1*10);
            return ;    
        }
        
        if(null!=abs){
            abs.getReward(sum);
        }else{
            System.out.println("error2");
        }
        
    }
}
class ThirtyCount extends AbstractCount{


    @Override
    public void getReward(double sum) {
        
        if(sum<=30&&sum>20){
            System.out.println(0.05*(sum-20)+10*0.075+0.1*10);
            return ;    
        }
        
        if(null!=abs){
            abs.getReward(sum);
        }else{
            System.out.println("error3");
        }
        
    }
}
class FortyCount extends AbstractCount{


    @Override
    public void getReward(double sum) {
        
        if(sum<=40&&sum>30){
            System.out.println(0.03*(sum-30)+10*0.05+10*0.075+0.1*10);
            return ;    
        }
        
        if(null!=abs){
            abs.getReward(sum);
        }else{
            System.out.println("error4");
        }
        
    }
}
class HandrdCount extends AbstractCount{

    @Override
    public void getReward(double sum) {
        
        if(sum<=100&&sum>40){
            System.out.println(0.015*(sum-40)+10*0.03+10*0.05+10*0.075+0.1*10);
            return ;    
        }else if(sum>100){
            System.out.println((sum-100)*0.01+60*0.015+10*0.03+10*0.05+10*0.75+0.1*10);
            return ;
        }
        
        if(null!=abs){
            abs.getReward(sum);
        }else{
            System.out.println("error5");
        }
        
    }
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值