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. ASP.NET Core 项目简单实现身份验证及鉴权

    ASP.NET Core 身份验证及鉴权 目录 项目准备 身份验证 定义基本类型和接口 编写验证处理器 实现用户身份验证 权限鉴定 思路 编写过滤器类及相关接口 实现属性注入 实现用户权限鉴定 测试 ...

  2. web安全之机器学习入门——2.机器学习概述

    目录 0 前置知识 什么是机器学习 机器学习的算法 机器学习首先要解决的两个问题 一些基本概念 数据集介绍 1 正文 数据提取 数字型 文本型 数据读取 0 前置知识 什么是机器学习 通过简单示例来理 ...

  3. 刷shipid 简便方法

    将表中的数据手动更改: select * from cmpps025 where  pino = ''; insert into cmpps025 select ncmp, pino, pono, i ...

  4. instanceof简单用法

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

  5. mysql传统主从配置与主从监控

    主从简介 在现代企业中,数据显得尤为重要,而存储数据的数据库选择又五花八门,但无论是何种数据库,均存在着一种隐患. 当数据规模非常大,读写量也很高时,一台数据库已经无法负担全部读写任务,就需要多台数据 ...

  6. Java容器-个人整理1

    1.初始化集合时,若能知道知道容量,尽量初始化时确定容量.容器类一般可以自动扩充,但扩充是有性能代价的. 2.Arrays.asList()的底层表示仍然时数组,因此不能进行调整尺寸的操作. 3.Ha ...

  7. [js]jQuery EasyUI的linkbutton组件disable方法无法禁用jQuery绑定事件的问题分析

    问题由来 linkbutton 是 jQuery EasyUI 中常用的一个控件,可以使用它创建按钮.用法很简单,使用 a 标签给一个easyui-linkbutton 的class就可以了. < ...

  8. 关于get和post请求的区别

    1.标准答案 GET在浏览器回退时是无害的,而POST会再次提交请求. GET产生的URL地址可以被Bookmark,而POST不可以. GET请求会被浏览器主动cache,而POST不会,除非手动设 ...

  9. mysql5.7高版本加载低版本sql文件,时间不能为0000-00-00格式错误

    错误代码:ERROR 1067 (42000): Invalid default value for 解决方式 1. show session variables like '%sql_mode%'; ...

  10. 软件测试---测试模型(V、W、H)

    一.V测试模型 1.V模型示意图: 单元测试:又叫模块测试,针对软件设计中的最小单位—>程序模块 集成测试:又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序.递增测试. 系统测试:把 ...