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. filter 全局和局部过滤器

    1,局部过滤器 2,全局过滤器 使用方法相同,在花括号中使用过滤器名或者v-bind中使用

  2. WIN10 安装 ReportBuilder3.msi 提示需要 .NET Framework 4.5

    win+r键调出运行窗口输入regedit打开注册表,找到HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v4/Client ...

  3. [Python] 建 Django 项目

    Python和Django的安装见这里:http://www.runoob.com/django/django-install.html 安装 Django 之后,您现在应该已经有了可用的管理工具 d ...

  4. 2018-2019-2 《网络对抗技术》 EXP0 KALI安装 20165213 Week1

    kali安装过程 一.从官网下载kail 下载地址为:https://www.kali.org/downloads/ 选择下图中的kali下载 二.用VMware打开虚拟机 打开VMware,点击打开 ...

  5. numpy最值

    >>> a = np.arange(9).reshape((3,3))>>> aarray([[0, 1, 2], [3, 4, 5], [6, 7, 8]])&g ...

  6. C# 使用System.Speech 进行语音播报和识别

    C# 使用System.Speech 进行语音播报和识别 using System.Speech.Synthesis; using System.Speech.Recognition; //语音识别 ...

  7. 使用Mobile Device Manager Plus mdm软件进行完备的移动设备管理

    使用Mobile Device Manager Plus mdm软件进行完备的移动设备管理 什么是移动设备管理(mdm管理系统)? 移动设备管理(mdm管理系统)旨在管理企业内移动设备.管理员使用md ...

  8. HCNA之网络通信基础

    一.通信与网络 通信的概念我们并不陌生,在人类社会的起源和发展过程中,通信就直伴随着我们.般认为, 20世纪七.八十年代,人类社会已进入到信息时代,对于生活在信息时代的我们,通信的必要性和重要性更是不 ...

  9. Java平台

    Java的平台无关性 不同的网络环境,操作系统 支持嵌入式设备 减少开发部署时间 Java自身的平台和语言 编译成class文件 可在Java虚拟机中运行,与外部环境无关(对虚拟机的依赖) 通过外部A ...

  10. PAT DFS,BFS,Dijkstra 题号

    为什么要分类刷题: 因为刷⼀道算法题需要花⼀两个⼩时甚⾄半天,平时我们还要上课做别的事情,你在⼀段时间内刷算法如果只按照顺序,可能今天遇到了⼀道最短路径的题⽬,弄了半天好不容易看懂了别⼈的代码,以为⾃ ...