精华内容
下载资源
问答
  • 每日一道java笔试题 2020-9-23

    千次阅读 2020-09-23 23:52:22
    每日一道java笔试题 2020-9-23 LeetCode:28. 实现 strStr() 实现 strStr()函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,...

    每日一道java笔试题 2020-9-23

    LeetCode:28. 实现 strStr()

    实现 strStr()函数。

    给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1

    示例 1:

    输入: haystack = "hello", needle = "ll"
    输出: 2
    

    示例 2:

    输入: haystack = "aaaaa", needle = "bba"
    输出: -1
    

    说明:

    needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。

    对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与C语言的 strstr() 以及 Java的 indexOf() 定义相符。

    双指针法:

    package cn.lbl.face.leetCode;
    
    public class 实现strStr {
        public static int strStr(String haystack, String needle) {
            //如果needle是空字符串时,返回0
            if (needle == null || needle.length()==0) {
                return 0;
            }
            int i=0;
            while (i<needle.length()) {
                int index = haystack.indexOf(needle, i);
                if (index == -1) {
                    return index;
                }
                i = index;
                for (int j = 0; j < needle.length(); j++, index++) {
                    if (haystack.charAt(index) != needle.charAt(j)) {
                        break;
                    }
                }
                return i;
            }
            return -1;
        }
    
        public static void main(String[] args) {
            System.out.println(strStr("aaaaa","bba"));
        }
    }
    

    在这里插入图片描述

    展开全文
  • 每日一道java笔试题 2020-9-22

    千次阅读 2020-09-22 21:04:45
    每日一道java笔试题 2020-9-22 leetCode 27. 移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外...

    每日一道java笔试题 2020-9-22

    leetCode 27. 移除元素

    给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

    不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地修改输入数组

    元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

    示例 1:

    给定 nums = [3,2,2,3], val = 3,
    
    函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。
    
    你不需要考虑数组中超出新长度后面的元素。
    

    示例 2:

    给定 nums = [0,1,2,2,3,0,4,2], val = 2,
    
    函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。
    
    注意这五个元素可为任意顺序。
    
    你不需要考虑数组中超出新长度后面的元素。
    

    说明:

    为什么返回数值是整数,但输出的答案是数组呢?

    请注意,输入数组是以**「引用」**方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

    你可以想象内部操作如下:

    // nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝
    int len = removeElement(nums, val);
    
    // 在函数里修改输入数组对于调用者是可见的。
    // 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。
    for (int i = 0; i < len; i++) {
        print(nums[i]);
    }
    

    跟昨天的那道题目是类似的

    使用又指针法:

    public class 移除元素 {
    
        public static void main(String[] args) {
            System.out.println(removeElement(new int[]{3,2,2,3},3));
    //        removeElement(new int[]{0,1,2,2,3,0,4,2},2);
        }
    
        public static int removeElement(int[] nums, int val) {
            int i=0;
            for (int j = 0; j <nums.length ; j++) {
                if (nums[j] != val) {
                    nums[i]=nums[j];
                    i++;
                }
            }
            return i;
        }
    }
    

    时间复杂度为O(n)

    空间复杂度为O(1)

    在这里插入图片描述

    展开全文
  • 2020 兴业银行Java笔试题,记得几道题目,各位有兴趣的同学下载看看。
  • 每日五道java笔试题-2020-9-26

    千次阅读 2020-09-26 12:08:05
    每日五道java笔试题-2020-9-26 下列选项中,用于在定义子类时声明父类名的关键字是:( ) ​ 正确答案: C 你的答案: C (正确) interface package extends class 2.下面有个hibernate延迟加载,说法错误的是? ...

    每日五道java笔试题-2020-9-26

    1. 下列选项中,用于在定义子类时声明父类名的关键字是:( )

    ​ 正确答案: C 你的答案: C (正确)

    interface
    package
    extends
    class
    

    2.下面有个hibernate延迟加载,说法错误的是?

    正确答案: C 你的答案: C (正确)

    Hibernate2延迟加载实现:a)实体对象 b)集合(Collection)
    Hibernate3 提供了属性的延迟加载功能
    get支持延迟加载,load不支持延迟加
    hibernate使用Java反射机制,而不是字节码增强程序来实现透明性
    

    解析:

    Hibernate 中 get()和load() 的区别:

    1. get()采用立即加载方式,而load()采用 延迟加载;

    2. get()方法执行的时候,会立即向数据库发出查询语句,

    3. 而load()方法返回的是一个此中只有一个id属性,只有等真正使用该对象属性的时候,才会发出 sql语句

    4. 如果数据库中没有对应的记录,get()方法返回的是null.而load()方法出现异常ObjectNotFoundException

    5. 以下程序执行的结果是:

    class X{
    	Y y=new Y();
    	public X(){
    		System.out.print("X");
    	}
    }
    class Y{
    	public Y(){
    		System.out.print("Y");
    	}
    }
    public class Z extends X{
    	Y y=new Y();
    	public Z(){
    		System.out.print("Z");
    	}
    	public static void main(String[] args) {
    		new Z();
    	}
    }
    

    解析:

    正确答案: C 你的答案: D (错误)

    ZYXX
    ZYXY
    YXYZ
    XYZX
    

    解析:

    答案C

    初始化过程:

    1. 初始化父类中的静态成员变量和静态代码块

    2. 初始化子类中的静态成员变量和静态代码块

    3.初始化父类的普通成员变量和代码块,再执行父类的构造方法;

    4.初始化子类的普通成员变量和代码块,再执行子类的构造方法;

    (1)初始化父类的普通成员变量和代码块,执行 Y y=new Y(); 输出Y

    (2)再执行父类的构造方法;输出X

    (3) 初始化子类的普通成员变量和代码块,执行 Y y=new Y(); 输出Y

    (4)再执行子类的构造方法;输出Z

    所以输出YXYZ

    1. 以下哪项陈述是正确的?

      ​ 正确答案: E 你的答案: B (错误)

      垃圾回收线程的优先级很高,以保证不再 使用的内存将被及时回收
      垃圾收集允许程序开发者明确指定释放 哪一个对象
      垃圾回收机制保证了JAVA程序不会出现 内存溢出
      进入”Dead”状态的线程将被垃圾回收器回收
      以上都不对
      

    解析:

    答案:E

    A: 垃圾回收在jvm中优先级相当相当低。
    B:垃圾收集器(GC)程序开发者只能推荐JVM进行回收,但何时回收,回收哪些,程序员不能控制。
    C:垃圾回收机制只是回收不再使用的JVM内存,如果程序有严重BUG,照样内存溢出。
    D:进入DEAD的线程,它还可以恢复,GC不会回收

    1. It is an important feature of the Java language that it always provides a default constructor to a class.

      正确答案: A 你的答案: B (错误)

      FALSE
      TRUE
      

    解析:

    题目:总是为一个类提供了一个默认的构造函数是Java语言的一个重要特性 。

    事实上只有在我们没有显示声明任何构造方法时java才会为我们提供一个默认的无参构造函数。

    展开全文
  • 2020校招Java笔试题

    2020-12-03 09:36:23
    写在前面,几个月没怎么看过Java,昨天上午突然决定参加一下这个笔试,然后立马投了简历。晚上参加远程笔试,题目不算难,算是普通水平,算法也没有难到不会写。但我还是把实现栈 (会写的写错最气人)的那写错...
    • 写在前面,几个月没怎么看过Java,昨天上午突然决定参加一下这个笔试,然后立马投了简历。晚上参加远程笔试,题目不算难,算是普通水平,算法题也没有难到不会写。但我还是把实现栈会写的写错最气人)的那题写错了,交完答案,重新看了一眼题,瞬间就骂自己sb,脑子当时不知道在想什么???这么简单的题,都给写错,怕是没机会参与面试了。不过也好,趁着最后一个月,多投几个简历,复习一下自己几个月没看的Java。最后,吐槽一下,纸上写代码简直是活受罪啊啊啊,强烈推荐算法题还是在线上编程比较好,另外就是我写的字太难看了(我是辣鸡,只会嘤嘤嘤…)。最后,不管结果如何,总结一下至关重要,另外也告诫自己,下一次遇到这种简单的题目就别写错了。在写错,自己就真是个sb了。

    简答题

    • 写出你用过的linux命令,举例说明其中几个的具体用法。

      • mkdir、chomd、apt-get update、ifconfig、vim、cd、…(用法就不说了,不懂的Google)
    • 写出TCP的三次握手和四次握手的过程。

      • 三次握手:假设 A 为客户端,B 为服务器端。首先 B 处于 LISTEN(监听)状态,等待客户的连接请求。A 向 B 发送连接请求报文,SYN=1,ACK=0,选择一个初始的序号 x。B 收到连接请求报文,如果同意建立连接,则向 A 发送连接确认报文,SYN=1,ACK=1,确认号为 x+1,同时也选择一个初始的序号 y。A 收到 B 的连接确认报文后,还要向 B 发出确认,确认号为 y+1,序号为 x+1。B 收到 A 的确认后,连接建立。

      • 四次挥手:假设 A 为客户端,B 为服务器端。首先A 发送连接释放报文,FIN=1。B 收到之后发出确认,此时 TCP 属于半关闭状态,B 能向 A 发送数据但是 A 不能向 B 发送数据。当 B 不再需要连接时,发送连接释放报文,FIN=1。A 收到后发出确认,进入 TIME-WAIT 状态,等待 2 MSL(最大报文存活时间)后释放连接。B 收到 A 的确认后释放连接。

    • 将一个句子按单词反序。比如 “the sky is blue”,反序后变为 “blue is sky the”?

    	public static String reverse(String S) {
            String[] strs = S.trim().split(" ");
            StringBuilder sb = new StringBuilder();
            for (int i = strs.length - 1; i >= 0; i--) {
                sb.append(strs[i]);
                sb.append(" ");
            }
            return sb.toString().trim();
        }
    
    • 一张学生成绩表score,部分内容如下:
      name course grade
      张三 操作系统 67
      张三 数据结构 86
      李四 软件工程 89
      用一条SQL 语句查询出每门课都大于80 分的学生姓名。

    这题这不会写,好久好久没写过SQL语句了,问题这就暴露出来了。看来自己需要好好复习一下SQL语句了。

    答案:
    select distinct name from score where name not in (select name from score where grade <= 80);
    
    • 接口和抽象类的区别是什么?

      • 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
      • 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
      • 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
      • 一个类只能继承一个抽象类,而一个类却可以实现多个接口。(JDK 1.8 以后,接口里可以有静态方法和方法体了。)
    • 集合类用过哪些,分别列举出来,并指出它们各自使用了那些数据结构。

      • ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap、ConcurrentHashMap…
    • Spring的IOC和AOP是什么? Spring有哪些优点?谈谈你对spring的理解。

      • IOC:控制反转(Inversion of Control),即创建被调用者的实例不是由调用者完成,而是由 Spring 容器完成,并注入调用者。
      • AOP:面向切面,允许你定义方法拦截器切入点对代码进行干净地解耦,它实现了应该分离的功能,降低代码的耦合度。

    编程题

    • 实现一个栈,包含栈的基本操作(pop、push、top、size)。
    public class Stack {
        Queue<Integer> in;
        Queue<Integer> out;
    
        public Stack() {
            in = new LinkedList<>();
            out = new LinkedList<>();
        }
    
        public int pop() {
            return out.poll();
        }
    
        public void push(int x) {
            in.add(x);
            while (!out.isEmpty()) {
                in.add(out.poll());
            }
            Queue tmp = in;
            in = out;
            out = tmp;
        }
    
        public int top() {
            return out.peek();
        }
    
        public int size() {
            return (in.size()+out.size());
        }
    }
    
    class MyStack {
        Queue<Integer> queue;
    
        public MyStack() {
            queue = new LinkedList<Integer>();
        }
        
        public void push(int x) {
            int n = queue.size();
            queue.offer(x);
            for (int i = 0; i < n; i++) {
                queue.offer(queue.poll());
            }
        }
        
        public int pop() {
            return queue.poll();
        }
        
        public int top() {
            return queue.peek();
        }
        
        public int size() {
            return queue.size();
        }
    }
    
    // 用数组实现栈,缺点是数组的大小已经固定。因此栈的最大容量也已经确定。
    class Stack {
    
        int[] stack;
        int i;
        public Stack() {
            stack = new int[1000];
            i = 0;
        }
        
        public void push(int x) {
            stack[i++] = x;
        }
        
        public int pop() {
            return stack[i--];
        }
        
        public int top() {
            return stack[i];
        }
        
        public int size() {
            return i+1;
        }
    }
    
    • 给定一个无序数组arr,找到数组中未出现的最小正整数
    例如arr = [-1, 2, -3, 4]。返回1
    arr = [1, 2, 3, 4]。返回5
    
    [要求]
    时间复杂度尽可能的低。
    
    public static int minInt(int[] arr) {
            int len = arr.length;
            for (int i = 0; i < len; i++){
                if (arr[i] > 0 && arr[i] < len) {
                    int tmp = arr[arr[i]-1];
                    arr[arr[i]-1] = arr[i];
                    arr[i] = tmp;
                }
            }
    
            for (int i = 0;i < len; i++) {
                if (arr[i] != i+1) {
                    return i+1;
                }
            }
            return len+1;
        }
    

    你知道的越多,你不知道的越多。

    展开全文
  • 2020 兴业数金Java在线笔试题,整理的比较简单,各位有兴趣的同学可以下载参考看看。
  • 每日java笔试题——2020-10-7

    千次阅读 2020-10-07 20:27:24
    一般情况下,以下哪个选项不是关系...一个Java源程序文件中定义几个类和接口,则编译该文件后生成几个以.class为后缀的字节码文件。 正确答案: A 你的答案: B (错误) 正确 错误 解析: 一个.java文件中定义多个..
  • 2020同花顺java笔试题,满分385分四十多道题,有开放题有编程题,整体难度偏低,基础题很多,本人只学过java和mysql的基础都能做出大概100分的题目,分享出来给需要的朋友
  • 每日java笔试题——2020-10-8

    千次阅读 2020-10-08 17:25:15
    正确答案: B D 你的答案: B D (正确) 从Java.lang.Thread类派生一个新的线程类,重写它的runnable()方法 从Java.lang.Thread类派生一个新的线程类,重写它的run()方法 实现Thread接口,重写Thread接口中的run()方法...
  • 阿里需要掌握的技术(下面是面试笔试题以及答案)1.阿里巴巴的数据库连接池druid2.阿里巴巴Dubbo+Zookeeper注册中心3.阿里巴巴MyCat分库分表4.pushlets推送技术5.Linux操作系统下shell编程6.Redis缓存技术(session统一...
  • 上期发布了美团校招笔试题之后,立马就有同学来找Emma问有没有BAT的题,而且“点菜”的同学还不在少数。嗯,可以理解,毕竟这三座大山的技术沉淀还是还是相当硬气的,而且员工水平也相对较高。对应届生就意味着,...
  • 有一段 java 应用程序它的主类名是 a1那么保存它的源文件名可以是 A ) a1.java B) a1.class C) a1 D) 都对 3.整型数据类型中需要内存空间最少的是 D A) short B) long C) int D) byte 4. Java 类可以作为 C A
  • 2020华为云Java笔试题

    2020-04-29 07:57:30
    package test;...import java.io.*; import java.util.*; public class GetDays { // 判断年份是否是闰年 如果是返回true public static boolean isLeap(int year) { if (year % 100 != 0) { return ...
  • 阿里Java实习生笔试题2020-03-27场

    千次阅读 2020-03-28 15:07:59
    阿里的笔试题只有两个编程题,让我很意外。。。本以为会有计算机网络,数据库,操作系统等类的基础题。等笔试的时候发现就有两道编程题。 第一题是一个给定一个序列A与一个序列B,每次只能把序列A的一个字符移动到...
  • 下列哪一个不属于正则表达式限定符( )A. {n,m}B.... 物理层和数据链路层阅读下面的Java程序,以下说法正确的是( )public class TryTest2 {public static boolean catchMethod(){System.out.println...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 448
精华内容 179
关键字:

java笔试题2020

java 订阅