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. JS学习记录------JS基本指令

    对未来的恐慌,和想成为一名自由开发的梦想.让我觉得应该点亮一个新的技能:WEB前端开发. 重新学习JS以及jQuery,让我在日常code的过程中可以更得心应手,毕竟,我爱代码. 这篇文章主要记录的内 ...

  2. 4-1 requests库的安装

    1.  一切安装从简就行了直接打开cmd命令窗口输入 pip install requests  把复杂的问题简单化,我这个已经安装好了.会提示已经安装. 2.打开cmd 输入python 这个会提示 ...

  3. 一年web网站测试总结

    1. 页面链接检查 每一个链接是否都有对应的页面,并且页面之间切换正确.可以使用一些工具,如LinkBotPro.File-AIDCS.HTML Link Validater.Xenu等工具.Link ...

  4. js 选择指定区域

    /根据id 选择特定区域function SelectRange(id) { var div = document.getElementById(id); var controlRange; if ( ...

  5. AX_SysTableBrowser

    sysTableBrowser sysTableBrowser = new sysTableBrowser();  ;  sysTableBrowser.setAllowEdit(true);  sy ...

  6. VSCode 绿色版(zip压缩包) 添加右键菜单 使用VSCode 打开文件或文件夹

    微软官方下载VSCode 可以下载exe安装外还可以下载zip 压缩包 下载地址: https://code.visualstudio.com/Download 但是zip压缩包却没有了 右键使用VS ...

  7. Context 解析

    ·  ContextWrapper比较有意思,其在SDK中的说明为“Proxying implementation ofContext that simply delegates all of its ...

  8. 20155312 张竞予 Exp2 后门原理与实践

    Exp2 后门原理与实践 目录 基础问题回答 (1)例举你能想到的一个后门进入到你系统中的可能方式? (2)例举你知道的后门如何启动起来(win及linux)的方式? (3)Meterpreter有哪 ...

  9. app微信支付-java服务端接口 支付-查询-退款

    个人不怎么看得懂微信的文档,看了很多前辈的写法,终于调通了,在这里做一下记录. 首先来定义各种处理类(微信支付不需要特殊jar包,很多处理需要自己封装,当然也可以自己写完打个jar包) 参数要用jdo ...

  10. python中使用XPath

    XPath在Python的爬虫学习中,起着举足轻重的地位,对比正则表达式 re两者可以完成同样的工作,实现的功能也差不多,但XPath明显比re具有优势,在网页分析上使re退居二线. XPath介绍: ...