精华内容
下载资源
问答
  • 继 承(面向对象特征之一) 好处: 1:提高了代码的复用性。 2:让类与类之间产生了关系,提供了另一个特征多态的前提。 ...问题:super()和 this()是否可以同时出现的构造函数中?...两个语句只能有一个定义在第一行,...
    继 承(面向对象特征之一)
    好处:
    1:提高了代码的复用性。
    2:让类与类之间产生了关系,提供了另一个特征多态的前提。


    问题:super()和 this()是否可以同时出现的构造函数中?
    两个语句只能有一个定义在第一行,所以只能出现其中一个。


    super()或者 this():为什么一定要定义在第一行?
    因为 super()或者 this()都是调用构造函数,构造函数用于初始化,所以初始化的动
    作要先完成




    1、脚标越界异常(IndexOutOfBoundsException)包括数组、字符串;


    2、类型转换异常:ClassCastException
    3、没有这个元素异常:NullPointerException
    空指针异常(NullPointerException)
    展开全文
  • JAVA中级程序员必备面试题 如何创建一个有序集合 用jdbc写一段有事务的代码 简述servletjspStruts2springMVC是否是线程安全的为什么 如何避免浏览器缓存 radisehcache两种缓存有什么区别radis如何存放一个java对象 ...
  • java初级程序员面试题

    2019-07-05 16:45:55
    **1.java的8种基本数据类型 byte 1字节 ,short 2字节,int 4字节,double 字节, flort 4字节, long 8字节,boolean jvm位定义,char 2字节 2.面向对象的三大特性 2.1 封装: 将内部实现方法隐藏起来对外只提供一个...
     1.java的8种基本数据类型
     byte 1字节 ,short 2字节,int 4字节,double 字节,
    flort 4字节, long 8字节,boolean jvm位定义,char 2字节
    
    
     2.面向对象的三大特性
        2.1 封装:
        将内部实现方法隐藏起来对外只提供一个接口
        2.2继承
        派生类继承基类的通用方法和属性没有必要再次编写
        原来的类 从而大大的提高了代码的复用性;
        2.3多态
       同一个动作对于不同的对象 所产生的不同行为
       例如  同一动作 :人会吃饭   不同对象:中国人用筷子,美国人用叉子
    
     3.谈谈对面向对象的理解
     面向对象的核心是类和对象 java的面向对象的思想就是万物皆对象
     类:是对一类事物的描述 是抽象的 也就是看不见的
     对象:是存在于类中的具体的个体 也可以称之为实例 
     所以面向对象设计的程序主要是对对象的设计而不是对类的设计
     类不会占用内存 对象会占用内存****
    
       4.java优点
      java是一门面向对象语言
      java是跨平台 一次编译 到处使用
      java有自动回收机制
      java是分布式
      java是多线程的**                
    
       5. StringBuilder 和 StringBuffer的区别
           StringBuilder 是线程不安全的效率比较高
           StringBuffer 是线程安全的效率比较低
           所以现在大多数的情况下都是使用的StringBuilder因为效率高
           但是在开发中明确规定线程安全的话建议使用StringBuffer.**
    
    6.简单介绍一下多态
            作用是不必为了派生类添加功能 直接调用 对抽象的基类进行处理就行 提高代码的复用性
             派生类的功能可以被基类的引用变量所调用 提高了代码的扩展性
             多态分为俩种分别是
             编译时多态 @overload 方法名相同    参数列表不同 返回值 无关( 重载)
             运行时多态@overwrite方法名相同      参数列表相同 返回值无关 (重写)
    
     7.string类可以被继承吗 
         string类是final修饰的类所以不能被继承
         底层是由数组实现的 数组长度不可变
    
     8.简单介绍一下static关键字
     static修饰的变量或者方法是由整个类来共享 可不必创建该类的对象来使用
     static的成员也称为类成员或者静态成员
     static修饰的方法
     存在于静态域中可以使用类名点方法名来使用
     静态方法只能访问静态成员 非静态成员要通过实例化对象来访问
     静态方法不能以任何方式来调用this关键字
     static修饰属性
     无论创建多少个对象都会共享这一属性也是存在于静态域中和类一个级别
     9.this和super的区别
     当成员变量和局部变量重名的时候应该调用this来区分
     this代表当前的对象谁调用this就代表谁
     this(参数列表)调用本类中的重载构造方法 必须放在第一行
     super是指调用父类的成员方法和属性
      可以从子类的构造方法调用父类的构造方法 必须放在第一行
     10. ==和equals的区别
        ==基本类型时比较的是值的大小
          引用类型时比较的是内存的引用地址
        equals比较的是值的内容是否一样
      11.抽象类
          首先有构造方法
          抽象类不能实例化 子类必须重写父类的抽象方法
          abstract不能修饰属性 private static final
          一般类中不能定义抽象方法 抽象类中可以有抽象方法也可以没有抽象方法
          抽象方法只有声明没有实现
          接口是一种特殊的抽象类
          接口中包含的方法都是抽象方法 没有方法体
           实现接口必须实现接口中所有的方法
           属性 private static final 方法 public abstract
           区别 抽象类有构造器 接口 没有
           关键字不一样
           抽象类可以有抽象方法也可以没有
           接口只能有抽象方法
           抽象类可以定义static 接口不能
           12.java中的堆与栈
             实例变量通过new出来的变量存放在堆中 当对象失去引用的时候会被gc回收
             局部变量存放在栈中当局部变量脱离了作用域被立即释放内存
            13.final finally finlize 
                final修饰变量 必须在声明的时候给一个初始化的值 而在以后的引用中只能读取
                fianl修饰方法 该方法不能被重写
                final修饰类 该类不能被继承
                finally 是处理异常作为必定会执行的一个语句块
                finalize 是用来调用gc清除对象之前的操作
           14.数组和链表的区别
           三个思路
           存储位置
           数组逻辑上存储的相邻的数据在物理存储位置上也是相邻的 而链表是随机的
           存储空间
           数组是一段连续的空间 链表可以是连续的也可以不是连续的
           长度的可变性
           数组一旦创建之后长度是不可以变得 链表是根据实际开发来分配
           区别
           数组的优点就是 随机访问性强 查询速度快
           数组的缺点 插入删除效率低  可能会浪费内存 必须要有足够的空间 数组长度是固定的
           数组的优点 存放个数不确定  数组长度不可变
           链表的优点就是插入删除速度快 应用率高  可扩展
           链表的缺点 不能随机查找 查找效率低 必须从第一个开始遍历
           14.集合
           collection接口
           list接口有序可重复的
           arraylist
           linkedlist
           vector
           set接口无序的不可重复的
           hashset
           linkedhashset
           treeset
           map接口  key value 键值对
           hashmap
           linkhashmap
           treemap
           hashtable
           15.sleep和wait的区别
           sleep方法是线程类thread类的静态方法调用这个sleep方法会让线程进入睡眠状态
           给初执行机会给其他进程等待休眠时间结束之后会进入就绪状态和其他进程一起
           争取cpu内存执行时间
           wait是object类的方法 当一个线程执行wait方法时 会进入该对象的等待池 
           可以通过notify notfiyall来唤醒等待的线程
           16.线程的生命周期
           新建
           就绪
           运行
           阻塞
           死亡
           17.线程与进程的区别
           进程:首先是拥有独立的堆栈区域和数据段 系统开销比较大
           由于进程之间是独立的特点 使得进程的安全性比较高当一个
           进程奔溃 并不会影响其他的进程
           进程的通讯管道比较复杂 比如 管道 信号 消息队列 套接字
           线程拥有独立的堆栈空间 但是共享数据段 彼此之间使用相同的地址空间 开销比较小
           线程是进程不同的执行路径 也就是说当一个线程死亡就等于整个进程死亡
           通讯方便
           18.什么线程什么事进程
           进程是指一次程序的运行是具有一定独立的程序关于某个数据集合上的一次运行 是操
           作系统分配和调度最小的单位
           线程是操作系统运算调度的最小单位 存在于进程之中是进程中实际运算的单位
           他们俩者之间的关系
           进程指的是一个程序运行的实例 线程是进程的实体
           线程必定只有一个进程 而一个进程可以有多个线程
           19.thread类的start()和run()方法的区别
           start方法用来启动新的线程start方法的内部调用了run方法 这和直接调用run方法不一样
           当你调用run方法的时候只是在原来的线程中调用没有新的线程启动start方法会启动新的线程
           20.当一个线程操作共享资源的时候 在没有执行完毕的情况下 共享资源会出现线程安全的问题
           方法有俩种一是同步代码块 二是同步方法
           同步代码块 synchronized(同步监视器){
           同步代码块
           }
           同步监视器:可以用对象来承担 针对于实际开发可以有对象和this关键字 对于继承只能用静态的
           对象
           方法二:同步方法
           确保一个线程执行方法时其他线程要等到该线程执行结束
           21.java中notfiy和notdiylly的区别
           notfiy不能唤醒某个具体的线程 所以一个线程在等待的时候他才有用武之地
           notfitlly 唤醒所有线程并且争夺锁确保了至少有一个线程进行
           22什么是泛型
           简单来说是一种标签 不确定的类型 当用户使用的时候确定类型  用于解决安全问题 是一种类型安
           机制 
           好处
           将运行时可能抛出的异常转移到编译期
           提供了安全性
           避免强制类型的转换
           23.概述反射和序列化
           反射:在运行状态中 对任意一个类 都能知道这个类的属性和方法
           对于任意一个对象 都能够调用他的任意方法和属性这种动态获取和动态调用简称反射
           序列化
           可以理解为把对象转换为容易传输的格式的过程
           序列化的好处
           方便保存对象 因为对象不能保存 所以可以通过序列化来保存对象 
    
    展开全文
  • 面试题之IO流 IO流按功能和类型可分为什么? 按类型分可分为字节流和字符流。 按功能分可分为输入输出流。 InputStream FileInputStream BufferedInputStream ObjectInputStream OutputStram FileOutputStream ...

    面试题之IO流

    IO流按功能和类型可分为什么?
    按类型分可分为字节流和字符流。
    按功能分可分为输入输出流。

    InputStream
    	FileInputStream
    	BufferedInputStream
    	ObjectInputStream
    
    OutputStram
    	FileOutputStream
    	BufferedOutputStream
    	ObjectOutputStream
    
    Reader
    	FileReader
    	BufferedReader
    
    Writer
    	FileWriter
    	BufferedWriter
    
    展开全文
  • 这些都是本人在2016年中面试过程中收集的题目,希望能对大家有所帮助,只限于初级程序员
  • Java初级程序员面试题大全

    千次阅读 2014-12-10 21:38:58
    1.Java中的进制: (在线阅读地址:http://www.4spaces.org/2014/12/07/job-audition-1.html) 1)十进制 à 二进制 例:100(10进制) = ?(2进制) 解: 100 = 64 + 32 + 4 = 2^6 + 2^5 ...

    一、基础和语法

     

    1.      Java中的进制:

     

    (在线阅读地址:http://www.4spaces.org/2014/12/07/job-audition-1.html

     

    1)十进制 à 二进制

         例:100(10进制)  =  ?(2进制)

         解:  100  = 64 + 32 + 4

                    = 2^6 + 2^5 +2^2

                      0100 0000

                      0010 0000

                      0000 0100

                   ---------------------------

                      0110 0100

     

    2) 二进制 à 十进制

         例: 101 1010(二进制)  = ?(十进制)

         解:    101 1010 = 2^6 + 2^4 + 2^3 + 2 = 90

     

    3) 十进制(负数)  à  二进制

            规律: -n = ~n + 1      

     

    例: -110 (10进制) = ?(2进制)

           110 =  64 + 32 + 8 + 4 + 2

             0100 0000

             0010 0000

             0000 1000

             0000 0100

             0000 0010

            ---------------------

             0110 1110

    取反:1001 0001

    +1  :1001 0010

    因此,结果为1001 0010

     

    4) 二进制(以 ”1” 开头的二进制数)  à  十进制

           规律:

    以”1” 开头的二进制数化为十进制数的步骤:

    先减一,然后对其求反,把得到的数化为十进制,最后给该数加负号。

     

    例: 1000 0101(2进制)  = ?(10进制)

    解:

    减1:    1000 0100

    取反:    0111 1011

    化10进制:2^6 + 2^5 +2^4 + 2^3+2^1+1 = 123

    加负号:     -123

     

    5)十六进制:  引入16进制的目的:简化2进制

      0 12 3 4 5 6 7 8 9 A B C D E F

      例:

       41(16进制)  = ?(10进制)

    =  4×16 + 1 = 65

     

       例:

    0110 0010(2进制)  = ?(16进制)

    0110 = 6

    0010 = 2

    0110 0010 = 62

       规律:四个数一组,化为16进制

     

    2.Java中的数据类型:

     

    (在线阅读地址:http://www.4spaces.org/2014/12/07/job-audition-2.html)

     

    基本类型(8种):

    整数类型: byte (二进制位数:8 bit,1个字节,表示范围:0x80-0x7f);

              short(二进制位数:16 bit,2个字节,表示范围:0x8000-0x7fff);

              int  (二进制位数:32 bit,4个字节,表示范围:0x8000 0000-0xfff ffff);

              long (二进制位数:64 bit,8个字节,表示范围:-2^63  - 2^63-1);

    浮点类型: float(二进制位数:32 bit, 4个字节);

              double(二进制位数:64 bit,8个字节);

    字符类型: char(二进制位数:16 bit,2个字节);

    布尔类型: boolean (二进制位数:根据JVM情况而定)

     

    3.什么是面向对象?

     

    (在线阅读地址:http://www.4spaces.org/2014/12/07/job-audition-2.html

     

    对象,即人们要进行研究的事物,对象具有状态和行为,用数据来描述对象的状态,用操作来描述对象的行为,对象实现了数据和操作的结合。面向对象,就是在解决问题时,将问题涉及到的事物分解成各个对象,分解的目的不是为了完成一个步骤,而是为了描述一个事物在整个解决问题的步骤中的状态和行为。

     

    4.面向对象和面向过程的区别?

     

    (在线阅读地址:https://www.4spaces.org/2014/12/07/job-audition-2.html

     

    面向过程,就是在解决问题时,分析出解决问题所需要的步骤,然后用函数来把这些步骤一步一步的实现,使用的时候一个一个的依次调用就可以了。

    面向对象,就是在解决问题时,将问题涉及到的事物分解成各个对象,分解的目的不是为了完成一个步骤,而是为了描述一个事物在整个解决问题的步骤中的状态和行为。

     

    5.面向对象的特征?

     

    (在线阅读地址:https://www.4spaces.org/2014/12/07/job-audition-2.html

     

    面向对象的主要特征有以下几个方面:

    1)抽象:  抽象就是忽略一个问题中与当前目标无关的那些方面,以便更充分的注意与当前目标有关的部分,抽象不打算了解问题的全部,而是只选择其中的一个部分,抽象包括两个方面:过程抽象和数据抽象。

    2)封装:就是把过程和数据包围起来,对数据的访问只能通过已定义的界面。

    3) 继承:对象的一个新类从现有类中派生,这个过程就是继承。新类继承了原始类的特性,新类称为原始类的子类,原始类称为新类的父类。子类可以从父类继承方法和变量,实现类的复用。

    4)多态:多态是指允许不同类的对象对同一消息作出不同的响应。

     

    6.类的初始化次序是怎么样的?

     

    (在线阅读地址:http://www.iwwenbo.com/2014/12/07/job-audition-3.html

     

    大家在去参加面试的时候,经常会遇到这样的考题:

    给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和一些变量,构造器里可能还有一段代码对变量值进行了某种运算,另外还有一些将变量值输出到控制台的代码,然后让我们判断输出的结果。这实际上是在考查我们对于继承情况下类的初始化顺序的了解。

    我们大家都知道,在同一个类中,对于静态变量、静态初始化块、变量、初始化块、构造器,

    它们的初始化顺序依次是:

    (静态变量、静态初始化块)>(变量、初始化块)>构造器。

    下面通过一段代码来验证一下:

    package audition;

     

    /**

     * 类的初始化顺序问题:

     *

     *@author wwenbo

     *

     */

    public class ClassIntialOrder {

     

             //1.定义变量

             publicString field = "变量";

     

             //2.定义静态变量

             publicstatic String staticField = "静态变量";

     

             //3.构造器

             publicClassIntialOrder() {

                       System.out.println("构造器");

             }

     

             //4.初始化块

             {

                       System.out.println("初始化块");

                       System.out.println(field);

             }

             //5.定义静态初始化块

             static{

                       System.out.println("静态初始化块");

                       System.out.println(staticField);

             }

     

             publicstatic void main(String[] args) {

                       newClassIntialOrder();

             }

    }

     

    上面的程序的打印结果如下:

    静态初始化块

    静态变量

    初始化块

    变量

    构造器

     

     

    那么,在继承当中的类的初始化次序又是怎样的呢? 再通过一段代码来看一下:

    package audition;

     

    public class SubClass extends ParClass {

     

             //1.变量

             publicString s_Field = "子类--变量";

             //2.静态变量

             publicstatic String s_StaticField = "子类--静态变量";

     

             //3.构造器

             publicSubClass() {

                       System.out.println("子类--构造器");

             }

     

             //4.初始化块

             {

                       System.out.println(s_Field);

                       System.out.println("子类--初始化块");

             }

             //5.静态初始化块

             static{

                       System.out.println(s_StaticField);

                       System.out.println("子类--静态初始化块");

             }

     

             publicstatic void main(String[] args) {

                       newSubClass();

             }

    }

     

    class ParClass {

     

             //1.变量

             publicString p_Field = "父类--变量";

             //2.静态变量

             publicstatic String p_StaticField = "父类--静态变量";

     

             //3.构造器

             publicParClass() {

                       System.out.println("父类--构造器");

             }

     

             //4.初始化块

             {

                       System.out.println(p_Field);

                       System.out.println("父类--初始化块");

             }

             //5.静态初始化块

             static{

                       System.out.println(p_StaticField);

                       System.out.println("父类--静态初始化块");

             }

     

    }

     

     

    打印结果如下:

    父类--静态变量

    父类--静态初始化块

    子类--静态变量

    子类--静态初始化块

    父类--变量

    父类--初始化块

    父类--构造器

    子类--变量

    子类--初始化块

    子类--构造器

     

    大家可能会注意到一点,那就是,并不是父类完全初始化完毕后才进行子类的初始化,实际上子类的静态变量和静态初始化块的初始化是在父类的变量、初始化块和构造器初始化之前就完成了。另外,静态变量和静态初始化块的初始化次序,是按照定义的先后顺序进行的,变量和初始化块也是如此。大家可以调换静态变量和静态初始化块的次序来看一下。

    展开全文
  • Java程序员面试三十二问.doc Java经典试题及答案.doc java面试笔试题大汇总.doc 企业面试题精选.doc 9JAVA代码查错.doc jdbc.doc Struts.doc Hibernate?.doc
  • /** 该需要注意的就是截取字符串的时候包头不包尾 @author KingShy */ public class T11 { public static void main(String[] args) { // TODO Auto-generated method stub String a = "newspaper";...
  • public class T03 { public static void main(String[] args) { // TODO Auto-generated method stub int i,j,k,l=0; k=l++;//k=0; ++在后先赋值再做++运算!... System.out.println("K值是:"+k);...
  • 不管你是Java初学者还是有一两年工作经验的,这些知识点肯定会对你造成困扰,建议你看看!
  • Java 面试题库,2018-2019年黑马最新版Java程序员面试宝典+题库pdf。 我们培训班刚发的面试题,2018年黑马最新程序员面试宝典+题库,内容包含大量java程序员初级知识点,以及框架的应用,js的基础。需要的赶紧下载...
  • package com.test; /** 输出为0 @author KingShy 静态变量不赋初始值可以在main方法中直接使用, 实例变量不赋初始值则需要通过创建对象调用才可以。 */ public class T07 { int j; static int i;...
  • 开篇介绍 个人背景: 不说太多废话,但起码要让你先对我有一个基本的了解。本人毕业于浙江某二本院校... Java面试题合集: 务 27题+ Linux 45题:** [外链图片转存中…(img-1kWeJcxA-1622098569903)] Java面试题合集:
  • 我们培训班刚发的面试题,2018年黑马最新程序员面试宝典+题库,内容包含大量java程序员初级知识点,以及框架的应用,js的基础。需要的赶紧下载准备面试吧.
  • 关于赢在面试Java题系列基本收集整理完成了,所有题目都是经过精心挑选的,很基础又考验求职者的基本功,应该说被面试到的几率很大。这里我整理挑选出来供大家面试前拿来看一看。 1、a.hashCode() 有什么用?与 a...
  • java基础适合刚学习和即将面临找工作的初级程序员
  • 初级程序员面试题总结(一):

    千次阅读 多人点赞 2018-06-08 15:55:28
    本人将这几天面试的题目总结一些,如果出现错误请指正,谢谢。 1,谈一谈spring。 答:spring是为java程序开发提供的综合性的基础java开发平台,它提供了从表现层SpringMVC到业务层Spring再到持久层springData的...
  • java程序员的参考,适合于初级以及有些许编程经验的程序员参考用。
  • 20道你必须要背会的微服务面试题 文章目录1、& 和 && 的区别2、重载和重写的区别3、== 和 equals 的区别4、final、finally、finalize 的区别5、接口和抽象类6、error 和exception 的区别7、throw 和 throws 的区别8...
  • Java程序员面试宝典(免费).pdf重点有标记推荐初级学者认真看最后一道面试题我几回笔试都看到了类此的必考题哦
  • 众所周知,Java开发人员的生存环境可谓是与以前大相径庭,以IT行业发展来说,在十几年前的时候,IT行业的技术人才是稀缺的,程序员最初的招聘行情,只要你会敲“holle world”、会点技术,能做出点东西,就能入职...
  • Java初级程序员面试总结(二) 引言: 我是一个菜鸟程序员,坐标HZ,以下为整理的面试题. Q1: Hashmap源码你看过没? Answer: hashmap在jdk1.8之前,采用数组+链表的结构.在jdk1.8及以后,采用数组+链表/红黑树的结构....
  • 程序猿试题 基本问题信息卷 基本问题 最早到岗日期 最晚到...项目经理 开发经理 测试经理 客户经理 售前工程师 业务分析师 系统设计师 软件工程师高级 中级 初级 测试工程师高级 中级 初级 你希望应聘的工作岗位是 期望
  • Java初级程序员面试总结(三) 引言: 我是一个菜鸟程序员,坐标HZ,面试总结系列将无期更新,有疑问的朋友可以留言 Q1: 你知道Java有哪些锁? Answer: 乐观锁和悲观锁.乐观锁是CAS(CompareAndSwap).悲观锁是Lock锁,偏向锁,...
  • 1-5年的Java程序员,薪资区间大致是在15-25K左右,那有没有可能提前达到30K的薪资呢?有人说这只能是大企业或者互联网企业工程师才能拿到。也许是的,小公司或者非互联网企业拿30K的不太可能是初级开发或者码农了,...
  • 1换位思考下,如果你面试官,你会怎么做  1只能通过简历和面试来衡量,别无他法。如果某位大牛确认能力很行,但面试时无法充分地自证能力,那对不起了,过不了,现实就这样。  2如果面试官由于能力不行,招...
  • 我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家。 扫描二维码或搜索下图红色VX号,加VX好友,拉你进【程序员面试学习交流群】免费领取。也欢迎各位一起在群...
  • 我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家。 扫描二维码或搜索下图红色VX号,加VX好友,拉你进【程序员面试学习交流群】免费领取。也欢迎各位一起在群...
  • 我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家。 扫描二维码或搜索下图红色VX号,加VX好友,拉你进【程序员面试学习交流群】免费领取。也欢迎各位一起在群...
  • 央行面试题 java 初级程序员 中级程序员 高级程序员 ...央行面试题 java 初级程序员 中级程序员 高级程序员央行面试题 java 初级程序员 中级程序员 高级程序员 央行面试题 java 初级程序员 中级程序员 高级程序员

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 258
精华内容 103
关键字:

初级java程序员面试题

java 订阅