目录

( 一 )写一个算法统计出一个字符串中某子串出现的次数。(注意,目标字符串不一定有逗号)

( 二 )以下代码的输出结果是什么: -- Java内存管理

( 三 )有数列:1 1 2 3 5 8 13 21....,请写出算法求出第30个数字

( 四 )以下程序的运行结果是:考察点:创建子类对象,先调用父类的构造方法,再调用子类的构造方法

(五)请写出代码完成对HashMap map = new HashMap()中元素的遍历。(可以写多种方式),string>,string>

Map集合的特点:

使用增强for循环实现

使用lambda表达式遍历

( 六 )数据库例题

分别创建三张表  表结构如下

业务场景限制:

题目:


( 一 )写一个算法统计出一个字符串中某子串出现的次数。(注意,目标字符串不一定有逗号)

  • 如字符串“hello world, hello eclipse, hello idea, hello spring”,统计出“hello”出现的次数
public class SubStringCount {public static void main(String[] args) {String dest = "hellohello world, hello  eclipse, hello idea, hello spring";String subStr = "hello";int count = 0; //计数器int index = -1;  //表示从目标串哪个位置开始查找;也表示查找到目标子串出现的下标//若目标子串出现,则计数器+1,且index下标值后要后移到目标串出现的下一个字符去while((index=dest.indexOf(subStr,index))!=-1){//计数器+1count ++;//index索引后移到出现的子串的下一个字符index += subStr.length();}System.out.println(count);}
}

( 二 )以下代码的输出结果是什么: -- Java内存管理

class T{public static void main(String[] args){String str = "ok";char[] chs = {'g','b','k'};T t = new T();t.change(str,chs);System.out.println(str);System.out.println(Arrays.toString(chs));}public void change(String str,char[] chs){str = "hello";chs[0] = 'a';
}
//输出结果//str:  ok
// chs: a b k

解析:

( 三 )有数列:1 1 2 3 5 8 13 21....,请写出算法求出第30个数字

  • 斐波那契数列(Fobonacci)---考点:递归

  • 递归:是一种思想,应用在代码方面体现为:方法调用方法本身

  • 递归经典算法: 斐波那契数列; 求阶乘 ;链表底层也是递归实现的

package cn.tedu.interview.day02;/*** 求出第30个位置的值,斐波那契数列,考察递归*/
public class Fabonacci {public static void main(String[] args) {//求出第30位的值Fabonacci fabonacci = new Fabonacci();int x = fabonacci.fn(30);System.out.println(x);}//求出某个位置的值  参数n:位置public int fn(int n){if(n==1 || n==2){return 1;}return fn(n-1)+fn(n-2);}
}

( 四 )以下程序的运行结果是:考察点:创建子类对象,先调用父类的构造方法,再调用子类的构造方法

public class Person{public Person(){System.out.println("superclass");}
}
public class Teacher extends Person{public String name = "jack";  //这里是publicpublic Teacher(){System.out.println("subclass");}public static void main(String[] args){Teacher teacher = new Teacher();System.out.println(teacher.name);}
}//superclass
//subclass
//jack
//通过debug查看执行过程,super()会出现在构造方法的第一行代码,无论写或不写,都存在;
//注意:若在构造方法中显示的调用父类的有参构造方法,此时super()不会默认提供

(五)请写出代码完成对HashMap<String,String> map = new HashMap<String,String>()中元素的遍历。(可以写多种方式)

public static void main(String[] args) {Map<String,String > map = new HashMap<>();map.put("语文","90");map.put("数学","80");map.put("英语","70");map.put("物理","89");//如何从map集合中取元素----  通过key值取value值,通过get方法实现//1. 使用增强for循环来遍历for (Map.Entry<String,String> entry:map.entrySet()) {System.out.println(entry.getKey()+"-"+entry.getValue());}//2. 可以使用lambda表达式来遍历map.forEach((k,v)-> System.err.println(k+":"+v));List<String> list = new ArrayList<>();list.add("tom");list.add("jack");list.add("rose");//list遍历--lambdalist.forEach(str-> System.err.println(str));}

Map集合的特点:

  • HashMap的map集合是无序的
  • LinkedHashMap是有序的

使用增强for循环实现

使用lambda表达式遍历

lambda表达式:

语法: ()->{}

用法:

用于实现一些功能性接口(接口内部之后一个抽象方法)--替换一部分的匿名内部类

Runnable接口 -- 功能性接口 -- run()
1. 使用匿名内部类来实现该接口Runnable r = new Runnable(){public void run(){....//任务}}new Thread(r).start();2. Runnable r = ()->{//任务};new Thread(r).start();

lambda表达式各部分意义:

( ):表示重写的方法的参数列表:

若无参,什么都不写

若有参,参数类型都可以省略,且若参数列表只有一个参数,此时()也可以省略

若有多个参数,参数类型可以省略,此时()不可以省略

{ }:表示重写的方法体

遍历集合:

可以遍历list,set,map集合,lambda表达式之所以能对三种集合进行遍历,是因为三种集合提供了对lambda的支持(提供的方法:forEach())

( 六 )数据库例题

  • 分别创建三张表  表结构如下

班级表(class)                                         学生表(student)

编号 班级名称
id  ( int ) class_name (varchar)
1 一班
2 二班
3 三班
4 四班
5 五班
编号 学号  姓名 性别 所属班级 (
id (int) stu_no (varchar) stu_name (varchar) stu_gender (varchar) class_id (int)
1 2020001 张三 1
2 2020002 李四 1
3 2020003 李丽 2
4 2020004 赵婷 3
5 2020005 王五 3

成绩表(score) 

学生 语文 数学
stu_id   ( int ) chinese ( int ) math( int )
1 70 47
2 80 60
3 50 82
4 80 90

业务场景限制:

  • 一个班级有多名学生,一名学生只属于一个班级
    ​​​​​​​学生有可能没有成绩

创建表

CREATE TABLE class(
id int,class_name varchar(20)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
CREATE TABLE student(
id int,stu_no varchar(20),
stu_name varchar(20),stu_gender varchar(20),class_id int
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
CREATE TABLE score(
stu_id int,chinese int,math int
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
插入数据
INSERT INTO class VALUES(1,'一班'),(2,'二班'),(3,'三班'),(4,'四班'),(5,'五班');
INSERT INTO student VALUES(1,'2020001','张三','男',1);
INSERT INTO student VALUES(2,'2020002','李四','男',1);
INSERT INTO student VALUES(3,'2020003','李丽','女',2);
INSERT INTO student VALUES(4,'2020004','赵婷','女',3);
INSERT INTO student VALUES(5,'2020005','王五','男',3);
INSERT INTO score VALUES(1,70,47),(2,80,60),(3,50,82),(4,80,90);

题目:

  1. 查询所有人(包括没有成绩的学生)的课程分数(学号,姓名,性别,班级名称,语文分数,数学分数)

    多表联查(关联查询):内连接查询,左外连接查询,右外连接查询,自连接查询

    注意:

    多表查询中要查询的字段若是唯一存在,那么可以不写表名.字段,可以直接写字段名
    SELECT stu_no,stu_name,stu_gender,class_name,chinese,math
    FROM student stu
    JOIN class c
    ON stu.class_id=c.id
    LEFT JOIN score sc
    ON stu.id = sc.stu_id;
    
  2. 查询语文分数比“张三”高的学生(学号,姓名,性别,班级名称,语文分 数)

    1.分析 确定三表查询 确定连接条件 确定查询条件

    SELECT stu_no 学号,stu_name  姓名,stu_gender 性别,class_name 班级名称,chinese 语文分数
    FROM student stu
    JOIN class c
    ONstu.class_id = c.id
    JOIN score sc
    ON sc.stu_id =stu.id
    WHEREchinese > (SELECT chinese FROM student stu JOINscore sc ONstu.id=sc.stu_id WHERE stu.id=1 );

    3.查询各科都合格(分数>=60)的学生(学号,姓名,语文分数,数学分数)

    分析 1,根据查询字段 确定查询表 2,连接条件 3. 查询条件

    SELECT stu_no 学号,stu_name 姓名,chinese 语文分数,math 数学分数
    FROM student stu
    JOIN score sc
    ON stu.id = sc.stu_id
    WHERE chinese>=60
    AND math>=60;

4.查询班级人数>=2的班级(班级编号,班级名称,人数)

分析 根据查询字段 确定表 class,student, 根据班级来进行分组 ,统计学生人数

注意: 查询结果count( )作为查询条件来使用,count 函数会使用 group by ,再次根据分组的结果进行条件进行查询

,应该使用having 关键字来进行分组后的数据进行筛选

分组 group by 用法: 分组通常和聚合函数配合使用 ( count,avg,sum,max,min)

SELECT c.id 班级编号,class_name 班级名称,count(*) 人数
FROM student stu JOIN class c
ONstu.class_id = c.id
GROUP BY stu.class_id
HAVING COUNT(*)>=2;

菜鸟补给站 - -Java 常见笔试题相关推荐

  1. java字符串笔试题_五道Java常见笔试题及答案汇总

    1.String和StringBuffer的区别? 答:Java平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据.这个String类提供了数 ...

  2. Java 常见笔试题(转载)

    final,finally和finalize总结 在某笔试题中看到,昨天复习了下JAVA后整理一下. final可以添加的位置有三个:class之前,变量前,成员方法前. 最常见的是在变量前如: fi ...

  3. java常见面试题——java常见笔试题

    注:转载自http://www.cnblogs.com/yhason/archive/2012/05/08/2489932.html,版权归其所有! 5.String是最基本的数据类型吗? 基本数据类 ...

  4. Java基础学习总结(74)——Java常见笔试题及答案汇总

    1. 下面哪些是合法的标识符?(ABE )--标识符 A. $persons B. TwoUsers C. *point D. this E. _endline 2. 下面程序运行的结果是( D )- ...

  5. Java 面试/笔试题神整理 [Java web and android]

    Java 面试/笔试题神整理 一.Java web 相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并 ...

  6. java面试笔试题大汇总

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

  7. Java面试笔试题大汇总一(最全+详细答案)

    Java面试笔试题大汇总二(最全+详细答案)https://www.jianshu.com/p/f5120f1b75be Java面试笔试题大汇总三(最全+详细答案)https://www.jians ...

  8. mysql @ $_mysql常见笔试题

    一.Mysql常见笔试题 1.Mysql 中有哪几种锁? (1)表级锁:开销小,加锁快.不会出现死锁,锁定粒度大,发生锁冲突的概率高,并发度低. (2)行级锁:开销大,加锁慢.会出现死锁,锁定粒度小, ...

  9. 2019 java 京东笔试题

    想进京东的同学注意了,这里是修真院面试笔记整理,那么这里就给大家分享一下 [2019 java 京东笔试题] JVM的内存结构和管理机制: JVM实例运行 JVM实例消亡 JVM的生命周期 JVM的内 ...

最新文章

  1. Newtonsoft.Json.dll 本地调用正常,服务器调用不正常
  2. 跟我学Springboot开发后端管理系统3:Mybatis-Plus实战2
  3. Gartner:解开关于人工智能的六个迷思
  4. 如何理解delegate (委托)设计模式
  5. 每天一道LeetCode-----计算n的阶乘末尾有多少个0
  6. BootStrap笔记-img相关
  7. 牧马人鼠标g13鼠标宏_经典再升级:达尔优牧马人五代游戏鼠标
  8. 米筐量化不支持c语言_从零开始学量化(三):数据获取途径
  9. 如何寻找互联网红利期产品?
  10. Atitit opencv3.0  3.1 3.2 新特性attilax总结
  11. 安装双系统(ubantu和window10)失败后,如何找回数据及格式化被加密的U盘
  12. 车牌检测License Plate Detection and Recognition in Unconstrained Scenarios
  13. 针对PVS方式的VDI部署趋势杀毒优化方法
  14. 码农慌不慌?只因写了一段爬虫,大数据公司200多人被抓!
  15. 三角(Triangle)
  16. 一个HTTP打趴80%面试者
  17. PS中去掉图片周围的无用白色区域
  18. 總結——關於2017 11 3測試的分析總結
  19. Lora中信息码片,编码率解释
  20. ubuntu下给firefox安装flash插件

热门文章

  1. 2021年安全生产监管人员复审考试及安全生产监管人员作业模拟考试
  2. 基于条码的库存管理系统
  3. 不用取色器快速获取颜色的RGB
  4. 从立创商城导出,在AD中生成集成库笔记
  5. Flash入门对AS语言的一些理解
  6. Linux(Ubuntu 21) 虚拟机安装
  7. 【电力运维】浅谈电力通信与泛在电力物联网技术的应用与发展
  8. python测试管理平台_Python + flask+ selenium 自动化测试用例管理、执行平台
  9. 【手把手AI项目】八、MobileNetSSD通过Ncnn前向推理框架在Android端的使用--Cmake编译(目标检测 objection detection)
  10. 中艺网校修图师学习笔记L1