1.Redis应用场景

答:分布式会话,分布式锁,计数器,缓存,消息队列,排行榜,最新列表。

2.如何访问一个类的私有方法?

答:使用反射进行访问,代码如下:

package cn.entity;

public class PrviteMhtod  {

    private PrviteMhtod(){ //私有构造
System.out.println("zzz");
}
private void pm(){//私有无参方法
System.out.println("我是一个私有的方法哦");
}
private void pm1(int i){//私有有参方法
System.out.println("我是猪"+i);
}
}

主代码:

   @Test
public void TT1() throws Exception {
Constructor constructor=PrviteMhtod.class.getDeclaredConstructor();
constructor.setAccessible(true); //调用是否可访问的方法 true为可以, false为不可访问。
PrviteMhtod prviteMhtod = (PrviteMhtod)constructor.newInstance();//实例化PrviteMhtod类 for (Method method:PrviteMhtod.class.getDeclaredMethods()) {
method.setAccessible(true);//设置PrviteMhtod类的方法是可以访问的。如果不设置是访问不到的,
if (method.getName().equals("pm")){//获取方法名为pm的方法
method.invoke(prviteMhtod);//调用pm方法
}else if (method.getName().equals("pm1")){
method.invoke(prviteMhtod,4);//如果是有参方法,需要传入参数。
}else if (method.getName().equals("pmss")){//如果没有此方法不进入该条件。
System.out.println("aaa");
}
} }

3.  这几个对象使用==的对比结果是?

String s1="a";

String s2=new String("a");

Integer a1=12;

Integer a2=12;

Integer a3=128;

Integer a4=128;

答:s1和s2  false     a1和a2 true       a3和a4 false        a3.equels(a4) true

  @Test
public void Th() throws InterruptedException { String s1="a";
String s2=new String("a");
Integer a1=12;
Integer a2=12;
Integer a3=128;//Integer的作用范围是-128 到127,超出此范围,而是相当于new出一个新对象。
Integer a4=128;
System.out.println(s1==s2);//false
System.out.println(a1==a2);//true
System.out.println(a3==a4);//false
System.out.println(a3.equals(a4));//true
}

4. 有两张表  一张用户表  用户表有用户编号和商品编号和消费时间                一张商品表  有商品编号和商品价格

  4.1 查询每个用户总共消费多少元?

 答:使用分组进行查询 :  SELECT SUM(price) ,uid FROM u,s WHERE u.`sid`=s.`sid` GROUP BY uid

  4.2 使用sql查询消费第三多的用户?

 答:使用order by进行倒序排序, 之后使用limit进行查询第三个用户即可。   :SELECT SUM(price) ,uid FROM u,s WHERE u.`sid`=s.`sid` GROUP BY uid   ORDER BY SUM(price) DESC LIMIT 2,1

  4.3  查询出2018年所有用户消费的平均值?

 答:使用between关键字查询出2018-01-01到2018-12-31之间的数据,between关键字的作用就是查两个数值之间的数据。  :SELECT AVG(price) AS 平均消费 FROM s,u WHERE s.sid=u.sid AND u.time BETWEEN '2018-01-01' AND '2018-12-31'

5.lambda表达式的特点?

 答:优点:简洁,  并行容易计算, 结合 hashmap 的 computeIfAbsent 方法,递归运算非常快。                             缺点:如果不是并行计算切效率还不如传统的for循环。不容易调试,没有接触过lambda表达式的程序员不容易看懂。

6.在修改一条数据时使用索引作为判断条件和不使用索引作为条件的区别。

使用主键作为修改条件(由于我数据太少,所以加主键和使用没有索引的列的区别不是太大。)

使用无索引列作为修改条件

因为mysql索引都是以B+tree的方式存储的,所以当不使用索引作为判断条件时,数据库底层会进行全局搜素,一条一条的去查找这个条件的数据,如果数据特别多的话,性能肯定是非常慢的,

但是如果是使用索引作为判断条件数据库就会很快的查询出结果,性能也是特别快的。

7.servlet生命周期及生命周期中有哪些方法?

加载和实例化    初始化    请求服务     销毁  ,      初始化时调用init()方法        请求服务时调用service()方法      销毁时调用distory()方法

8.session和cookie的区别?

cookie存储量有限而session可以存储无限量变量,   cookie存储在客户端, session会话存储在服务端,     cookie存储的数据相比于session安全性低,  session存储的数据安全性要比cookie高。

9.关系型数据库和非关系型数据的区别?

答:关系型数据库:  数据结构固定,灵活性稍欠,  sql通用,可以用于复杂查询,  支持一个表到多个表之间的非常复杂查询。都是使用表结构,格式一致,  易于维护。 读写性较差,特别是海量数据的高效率读写。

非关系型数据库:速度快, 高扩展, 成本低都是开源的, 学习成本较大, 无事务支持。复杂查询稍欠,格式灵活,存储的数据可以是 key-value    ,图片, 文档形式等等。

10.String的常用方法有哪些?

答:有length方法(获取长度)    equals方法(比较值)    valueof方法(类型转换)     trim方法(去除两端空格)     toLowerCase方法(字符串转换小写)    toUpeeCase方法(字符串转换大写)    charAt方法(输入字符的下标获取这个字符)     subString方法(截取字符之间的内容)

   @Test
public void contr() throws Exception { //使用String的length方法获取一个字符串的长度
/*注:new String 和 s1="";的区别是 new String不管在String常量池中有没有这个常量都会创建一个对象,
而 s1="";如果常量池中有这个常量,则会指向这个常量,不去开辟空间,如果没有这个常量则创建出这个常量
存储位置不同 s1="";存储在方法区中, 而new String对象存储在堆中。*/
String s1=new String("4sasqw521");
System.out.println(s1.length()); //使用String的charAt方法获取某一个位置的字符
String s2="7q7as4xz1";
System.out.println(s2.charAt(2));//这个是按照下标获取字符,每个字符的下标从零开始。 //使用String的equals方法比较对象的值是否相等
String s3="aaaxxz";
String s4="aaaxxz";
//注:因为String重写了equals方法,如果没有重写equals那么和使用==比较没有区别都是比较内存地址
System.out.println(s3.equals(s4)); //使用String的length方法获取一个字符串的长度
String s5=new String("4sasqw521");
String s6=s5.substring(2);//获取按照下标方式从下标为2的字符到以后的字符。
String s7=s5.substring(3,6);//获取下标为3到下标为6之内的内容, 下标为3的打印,为6的那个字符不打印。
System.out.println(s6+"----"+s7); //字符串的大小写转换方法, toLowerCase方法(转小写)和toUpeeCase方法(转大写)。
String s8="ABcdeFg";
System.out.println(s8.toLowerCase());
System.out.println(s8.toUpperCase()); //字符串两端去空格 (只去除两端的空格。)
String s9=" sa s ";
System.out.println(s9.trim()); //类型转换为字符串
int a=12;
String s10=String.valueOf(a);
System.out.println(s10);
}

 

java 常见面试题总结(一)的更多相关文章

  1. java常见面试题及答案 1-10(基础篇)

    java常见面试题及答案 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程.Java 源文件被 ...

  2. java常见面试题及答案

    java常见面试题及答案 来源 https://blog.csdn.net/hsk256/article/details/49052293 来源 https://blog.csdn.net/hsk25 ...

  3. Java 常见面试题(一)

    1)什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件.Java被设 ...

  4. 【转载】JAVA常见面试题及解答(精华)

     JAVA常见面试题及解答(精华)       1)transient和volatile是java关键字吗?(瞬联) 如果用transient声明一个实例变量,当对象存储时,它的值不需要维持.例如: ...

  5. JAVA常见面试题问题简述(持续更新中)

    JAVA常见面试题问题简述 1. springcloud和dubbo的区别 ①相比之下springcloud 的社区会更加活跃,解决问题的速度也会越来越快,dubbo相对来说如果碰到没有解决的问题,就 ...

  6. java常见面试题总结2

    JAVA必背面试题和项目面试通关要点 简单来讲,equals方法主要是用来判断从表面上看或者从内容上看,2个对象是不是相等. 一 数据库 1.常问数据库查询.修改(SQL查询包含筛选查询.聚合查询和链 ...

  7. Java常见面试题(含答案)

    第一,谈谈final, finally, finalize的区别. final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 ...

  8. java常见面试题

    JAVA相关基础知识 1.面向对象的特征有哪些方面  1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分 ...

  9. JAVA常见面试题及解答

    JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...

  10. Java常见面试题总结

    一.Java基础 1.String类为什么是final的. 2.HashMap的源码,实现原理,底层结构. 3.说说你知道的几个Java集合类:list.set.queue.map实现类咯... 4. ...

随机推荐

  1. instanceof简单用法

    语法: 对象 instanceof 类: 含义:如果这个对象时这个类或者这个类的子类的实例化,那么结果及时ture, 否则 false. 常常用来判断一个类是否是某个类的子类,以此判断A类是否继承或者 ...

  2. html 页面 判断第一个反应的网站并进行跳转 模仿CDN

    <!DOCTYPE html><html><head><meta charset="gb2312"><meta http-eq ...

  3. Spring Beans和依赖注入

    您可以自由地使用任何标准的Spring框架技术来定义您的bean及其注入的依赖项.为简单起见,我们经常发现使用@ComponentScan(找到您的bean)和使用@Autowired(做构造函数注入 ...

  4. Chapter5_初始化与清理_enum关键字

    enum关键字虽然只是一个很小的特性,但是它在我们使用枚举类型时,可以很方便的处理.先举一个例子. enum Speciness{ NOT, MILD, MEDIUM, HOT, FLAMING } ...

  5. python3 tkinter添加图片和文本

    在前面一篇文章基础上,使用tkinter添加图片和文本.在开始之前,我们需要安装Pillow图片库. 一.Pillow的安装 1.方法一:需要下载exe文件,根据下面图片下载和安装       下载完 ...

  6. Spring Boot中使用Lombok消除POJO类模板代码

    首先,要让IDE支持Lombok,这里以idea为例进行介绍. 点击项目的“File”-—>"settings"—>"Plugins",在marke ...

  7. Shiro学习

    Shiro学习资源 Shiro官网,http://shiro.apache.org/index.html 学习网站链接,http://blog.java1234.com/blog/articles/4 ...

  8. Codeforces 1065 简要题解

    文章目录 A题 B题 C题 D题 E题 F题 G题 传送门 GGG题略难,膜了一波zhouyuyang{\color{red} zhouyuyang}zhouyuyang巨佬的代码. 其余都挺清真的. ...

  9. MFC中添加控制台输出

    可以在CWinApp的InitInstance()中调用下面的函数,以生成控制台: #include <io.h> #include <fcntl.h> void InitCo ...

  10. .Net WebApi开发SharePoint出现System.IO.FileNotFoundException: 找不到位于的 Web 应用程序

    System.IO.FileNotFoundException: 找不到位于 http://xxx/sites/xxxx 的 Web 应用程序.请确认正确键入了此 URL.如果此 URL 需要提供现有 ...