北京智奇科技
1、看程序写结果:先判断有没有问题,如果没有,写出结果
class A { public void show() { show2(); } public void show2() { System.out.println("我"); } } class B extends A { //执行B中show(),B中没有show()去A中执行show() //在A中执行show(),然后执行show2(),而show2()执行的是B本身的show2() //因为它总会查看自己B本身是否存在该方法,如果没有才执行父类的方法 public void show2() { System.out.println("爱"); } } class C extends B { public void show() { //执行C中show(),而C中show()调用的是父类的show() super.show(); //而B中没有show(),它会执行A中的show(),执行show2() } //而此时show2()也和上面一样,先访问自己C本身的show2(),如果没有才会访问父类是方法 public void show2() { System.out.println("你"); } } public class DuoTaiTest4 { public static void main(String[] args) { A a = new B(); //编译看左边,运行看右边 a.show(); B b = new C(); b.show(); } }
答:有问题,爱你
2、请简述Overload(重载)和Override(覆写)的区别。Overloaded和Overriden的方法是否可以改变返回值的类型?
重写:子父类中方法名相同,参数列表相同,返回值的数据类型相同
重载:同一个类中,方法名相同,参数列表不同(参数的顺序、参数的类型、参数的个数)
在重载中,如果仅仅是返回值的类型不同不能定义重载,因为有些时候我们并不关心返回值类型是啥,如果这个时候出现多个方法的方法名相同、参数列表相同,java编译器无法知道我们调用的是哪个方法。
3、Java中final修饰符可以分别用在什么地方?分别表示什么意义?
Final修饰类:这个类不可以被继承
Final修饰方法:这个方法不可以被重写,但是可以被重载
Finla修饰变量:这个变量值是定值,不可以被改变
4、spring中bean的生命周期分哪几个阶段?
Bean定义阶段、bean实例化阶段、bean初始化阶段、bean销毁阶段
5、Spring中对一个bean进行初始化的方式有哪些?
@PostConstruct 标注方法
自定义初始化方法
实现 initializingBean 接口的afterPropertiesSet()方法
6.请实现一个Java方法, 实现以下功能:
入参类型:String,内容:以空格为分割的单词序列,单词个数不固定;
返回类型: String, 内容是将入参保持单词顺序不变,单词中的字母倒置。
例如, 入参:“123 abcd”;返回: “321 dcba”。
package com.leetecode.top100.string.wordsplit; import java.awt.*; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; //入参:“123 abcd”;返回: “321 dcba” public class WordSplit { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] srr = br.readLine().trim().split(" ");//输入字符串 if(srr.length==0||srr==null){ return; } Stack<Character> stack = new Stack<>(); for(int i=0;i<srr.length;++i){ for(int j=0;j<srr[i].length();++j){ stack.push(srr[i].charAt(j)); } while(!stack.isEmpty()){ System.out.print(stack.pop()); } System.out.print(" "); } } }
7、现有数据库表order(订单表):
Order: id userId(用户id) productId(商品id) createTime(下单时间) state(状态1 未支付,2正常,3已退款)price(订单金额) refundPrice(退款金额)
查询最近一个月已退款状态的商品都有哪些?
select productId from `order` where state=3;
查询最近三个月内,退款总金额是多少?
Select sum(refundprice) from `order` where datediff(now(),createTime)<=90;
正常支付的总金额是多少?
Select sum(price) from `order` where state=2;
用一条sql查询产品名称为“农夫山泉”,“娃哈哈矿泉水”的商品,在最近一个月内 分别售卖了多少?
select p.name, o.price from `order` as o inner join `product` as p on o.productId=p.productId;
8、用户只有在登录后才能访问商品系统,商品系统web部署在tomcat中,一共部署两个实例,请设计一个技术方案,控制没有登录就不能访问商品系统的任何web页面。