精华内容
下载资源
问答
  • 初级程序员面试题总结(一):
    千次阅读 多人点赞
    2018-06-08 15:55:28

    本人将这几天面试的题目总结一些,如果出现错误请指正,谢谢。
    1,谈一谈spring。
    答:spring是为java程序开发提供的综合性的基础java开发平台,它提供了从表现层SpringMVC到业务层Spring再到持久层springData的一套完整的解决方案。spring的核心有两大块,第一块是AOP,面向切面编程,它将程序与业务分离,集中来解决一些公共问题。第二块是IOC,控制反转,由容器来帮助对象寻找依赖并实现注入。
    spring实现了低耦合,它可以与很多主流框架进行集成,如mybbatis,struts等。
    2,谈一谈spring IOC/DI。
    答:IOC,就是将对象的创建权,交给IOC容器来进行管理,IOC帮助对象寻找对象依赖并注入,而不是由对象主动去找。
    IOC容器就像一个婚介所一样,我们先在婚介所登记我们需要怎么样的女朋友,然后婚介所会根据条件来为你提供一个女朋友,你需要做的就是和女朋友谈恋爱就可以。
    3,依赖注入的几种方式?你一般选择用哪种注入?
    答:三种方式。setter方法注入、构造器注入、接口注入。
    一般使用注解注入方式
    4,spring 是如何管理bean的?
    spring是通过容器来对bean进行管理。通常我们理解的容器有BeanFactory和ApplicationContext.BeanFactory使用了工厂模式,负责读取bean的配置文档,负责bean的加载,实例化,维护bean之间的依赖关系,负责bean的生命周期。ApplicationContext具有beanfactory的所有功能,同时还提供国际化支持,事件管理,AOP等,因此一般使用ApplicationContext。
    spring管理bean的生命周期,先是实例化一个bean,然后使用IOC/DI将需要的对象进行依赖注入,然后进过一系列的调用与使用,最后如果bean不再被使用或者容器销毁则会调用destroy方法进行销毁,生命周期结束。
    5,spring的常用注解:
    答:@controller,@service,@Repository,@ComPonent
    6,springMVC和struts的区别:
    答:
    (1) springmvc的入口是个DispatcherServlet,前端控制器;struts的入口是一个监听器
    (2)springmvc是基于方法的实现,传入方法的形参,可以设计为单例模式或者多例模式。struts是基于类的实现,参数为方法的属性。
    (3)struts更符合OOP编程思想,springmvc更谨慎,在servlet上扩展。
    (4)springmvc可以和spring可以认为是零配置,管理方面和安全方面较struts高。
    7,为什么在项目中使用springmvc而不使用struts2?
    答:首先,springMVC是基于方法开发的,struts是基于类开发的;
    其次,springMVC可以进行单例开发,struts只能进行多例开发;
    最后,springMVC的速度比struts快。
    8,说一下Mybatis和Hibernate的区别?
    答:1,mybatis是轻量级的半自动化框架;hibernate是轻量级的全自动框架;
    2,使用hibernate开发时开发量要小一点,不用写sql语句,全自动生成;mybatis相对工作量要大,需要写大量的sql语句;
    3,mybatis对于sql优化方面要比hibernate好,heibernate会查询出所有的字段,性能会有一点损耗;mybatis可以根据需求自己定制sql语句,实现sql优化。
    4,hibernate数据库移植性很强,而mybatis对数据库的依赖性比较强,更换数据库一般需要修改sql语句。
    9,sql优化。
    答:1,对查询进行优化,避免权标扫描;
    2,避免在where子句中对字段进行null判断;
    3,避免在where子句中使用<>、!=等操作符;
    4,少用in、not in;
    5,避免使用like;
    6,避免在where子句中进行表达式操作;
    7,不要使用太多的索引;
    8,不要使用select *,应尽力查询需要的字段。
    10,mysql创建自增长列关键词:auto_increment
    11,mysql查询前10条数据:select * from employee limit 0,10;
    12,oracle三层分页关键词:rownum
    13,将一张表数据复制到另一张表:create table sss as (select * from aaa)
    14,hashmap和hashtable的区别:
    答:hashmap与hasptable都完成了map接口。最主要的区别是hashtable是线程安全的,hashtable不是线程安全的,在多个线程访问hashtable时,不需要为它的方法实现同步,访问hashmap的时候需要实现同步。
    hashmap允许空的键值对,hashtable不允许,因此效率上hashmap要高于hashtable。
    15,hashmap的底层实现原理:
    答:HashMap底层就是一个数组结构,数组中的每一项又是一个链表。当新建一个HashMap的时候,就会初始化一个数组。(具体自查)
    16,ArrayList和LinkedListd的区别:
    答:ArrayList是基于数组的,linkedList是基于链表的;
    arrayList查询速度快,添加速度慢;linkedlist添加速度快,查询速度慢;

    更多相关内容
  • 大家在去参加面试的时候,经常会遇到这样的考题: 给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和一些变量,构造器里可能还有一段代码对变量值进行了某种运算,另外还有一些将变量值输出到...

    一、基础和语法

    1.      Java中的进制:

    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中的数据类型:

    基本类型(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.什么是面向对象?

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

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

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

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

    5.面向对象的特征?

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

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

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

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

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

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

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

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

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

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

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

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

    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("父类--静态初始化块");

    }

    }

    打印结果如下:

    父类--静态变量

    父类--静态初始化块

    子类--静态变量

    子类--静态初始化块

    父类--变量

    父类--初始化块

    父类--构造器

    子类--变量

    子类--初始化块

    子类--构造器

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

    展开全文
  • 初级程序员面试题

    2014-09-15 11:42:18
    软件公司招聘初级程序员面试题,考核基本素质。
  • java初级程序员面试题,免费不需要积分
  • JAVA中级程序员必备面试题 如何创建一个有序集合 用jdbc写一段有事务的代码 简述servletjspStruts2springMVC是否是线程安全的为什么 如何避免浏览器缓存 radisehcache两种缓存有什么区别radis如何存放一个java对象 ...
  • asp.net初级程序员面试题、一些最基本的知识点的问答。。。亲自整理
  • 初级Java程序员面试题

    2021-03-13 18:33:10
    初级Java程序员面试题Compare and contrast (don’t you love that phrase?) the modifiers public, private, protected and default.Compa...Compare and contrast (don’t you love that phrase?) the modifiers ...

    初级Java程序员面试题

    Compare and contrast (don’t you love that phrase?) the modifiers public, private, protected and default.Compa...

    Compare and contrast (don’t you love that phrase?) the modifiers public, private, protected and default.

    Compare an interface to an abstract class and give an example of when you might use one of each.

    What does the modifier final mean to a class and a variable?

    What is overloading and why might you use it?

    What is garbage collection and how does it work in java?

    How do you make a Thread in java?

    Write a generic main method and explain what each item in the method signature means.

    Explain how try/catch/throw/finally work.

    What is an Iterator and how do you use it?

    What are generics?

    1. What is the purpose of finalization? – The purpose of finalization is to give an unreachable object the opportunity to perform any cleanup processing before the object is garbage collected.

    2. What is the difference between the Boolean & operator and the && operator? – If an expression involving the Boolean & operator is evaluated, both operands are evaluated. Then the & operator is applied to the operand. When an expression involving the && operator is evaluated, the first operand is evaluated. If the first operand returns a value of true then the second operand is evaluated. The && operator is then applied to the first and second operands. If the first operand evaluates to false, the evaluation of the second operand is skipped.

    3. How many times may an object’s finalize() method be invoked by the garbage collector? – An object’s finalize() method may only be invoked once by the garbage collector.

    4. What is the purpose of the finally clause of a try-catch-finally statement? – The finally clause is used to provide the capability to execute code no matter whether or not an exception is thrown or caught.

    5. What is the argument type of a program’s main() method? – A program’s main() method takes an argument of the String[] type.

    6. Which Java operator is right associative? – The = operator is right associative.

    7. Can a double value be cast to a byte? – Yes, a double value can be cast to a byte.

    8. What is the difference between a break statement and a continue statement? – A break statement results in the termination of the statement to which it applies (switch, for, do, or while). A continue statement is used to end the current loop iteration and return control to the loop statement.

    9. What must a class do to implement an interface? – It must provide all of the methods in the interface and identify the interface in its implements clause.

    10. What is the advantage of the event-delegation model over the earlier event-inheritance model? – The event-delegation model has two advantages over the event-inheritance model. First, it enables event handling to be handled by objects other than the ones that generate the events (or their containers). This allows a clean separation between a component’s design and its use. The other advantage of the event-delegation model is that it performs much better in applications where many events are generated. This performance improvement is due to the fact that the event-delegation model does not have to repeatedly process unhandled events, as is the case of the event-inheritance model.

    11. How are commas used in the intialization and iteration parts of a for statement? – Commas are used to separate multiple statements within the initialization and iteration parts of a for statement.

    12. What is an abstract method? – An abstract method is a method whose implementation is deferred to a subclass.

    13. What value does read() return when it has reached the end of a file? – The read() method returns -1 when it has reached the end of a file.

    14. Can a Byte object be cast to a double value? – No, an object cannot be cast to a primitive value.

    15. What is the difference between a static and a non-static inner class? – A non-static inner class may have object instances that are associated with instances of the class’s outer class. A static inner class does not have any object instances.

    16. If a variable is declared as private, where may the variable be accessed? – A private variable may only be accessed within the class in which it is declared.

    17. What is an object’s lock and which object’s have locks? – An object’s lock is a mechanism that is used by multiple threads to obtain synchronized access to the object. A thread may execute a synchronized method of an object only after it has acquired the object’s lock. All objects and classes have locks. A class’s lock is acquired on the class’s Class object.

    18. What is the % operator? – It is referred to as the modulo or remainder operator. It returns the remainder of dividing the first operand by the second operand.

    19. When can an object reference be cast to an interface reference? – An object reference be cast to an interface reference when the object implements the referenced interface.

    20. Which class is extended by all other classes? – The Object class is extended by all other classes.

    21. Can an object be garbage collected while it is still reachable? – A reachable object cannot be garbage collected. Only unreachable objects may be garbage collected.

    22. Is the ternary operator written x : y ? z or x ? y : z ? – It is written x ? y : z.

    23. How is rounding performed under integer division? – The fractional part of the result is truncated. This is known as rounding toward zero.

    24. What is the difference between the Reader/Writer class hierarchy and the InputStream/OutputStream class hierarchy? – The Reader/Writer class hierarchy is character-oriented, and the InputStream/OutputStream class hierarchy is byte-oriented.

    25. What classes of exceptions may be caught by a catch clause? – A catch clause can catch any exception that may be assigned to the Throwable type. This includes the Error and Exception types.

    26. If a class is declared without any access modifiers, where may the class be accessed? – A class that is declared without any access modifiers is said to have package access. This means that the class can only be accessed by other classes and interfaces that are defined within the same package.

    27. Does a class inherit the constructors of its superclass? – A class does not inherit constructors from any of its superclasses.

    28. What is the purpose of the System class? – The purpose of the System class is to provide access to system resources.

    29. Name the eight primitive Java types. – The eight primitive types are byte, char, short, int, long, float, double, and boolean.

    30. Which class should you use to obtain design information about an object? – The Class class is used to obtain information about an object’s design.

    标签:

    面试题

    展开全文
  • 1、为什么要使用数据库? a.数据保存在内存 优点: 存取速度快 缺点: 数据不能永久保存 b....优点: 数据永久保存 缺点:1)速度比内存操作慢,频繁的IO操作。2)查询数据不方便 c....MySQL是一个关系型数据库管理系统,...
  • 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.概述反射和序列化
           反射:在运行状态中 对任意一个类 都能知道这个类的属性和方法
           对于任意一个对象 都能够调用他的任意方法和属性这种动态获取和动态调用简称反射
           序列化
           可以理解为把对象转换为容易传输的格式的过程
           序列化的好处
           方便保存对象 因为对象不能保存 所以可以通过序列化来保存对象 
    
    展开全文
  • PHP初级程序员面试题目6份,包含答案 PHP面试题 姓名:____________ 日期:____________ 1.以下的代码会产生什么?为什么? $num =10; function multiply(){ $num =$num *10; } multiply(); echo $num; 10 2.有一个...
  • ------------------------------------- java程序员早期面试题汇总 BAT经典面试题汇总.pdf Java常考面试题.pdf java面试题(题库全)....程序员面试题精选100题.pdf ... -------------------------------------
  • 关于php的面试题,自己可以下载下来看看,为以后的工作打基础
  • 什么是事务?事务有什么特性? 事务是指一个逻辑单元内的一系列操作,这些操作要么都执行, 要么都不执行。 事务具有四大特性:原子性,一致性,隔离性,持久性。 原子性:事务中包含的操作要么都执行,要么都不执行...
  • 史上最全Java初中级面试题,发现网上很多Java初级面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本人发现网上虽然有不少Java相关的面试题,但第一未必全,第二未必有...
  • 注意:这次面试过程比较长,内容繁多,在文章中我基本上简述了,文章里的面试题完整版和我个人的总结方法经验(面试学习和刷题笔记),都整理有PDF完整版,如有需要可以看文末 一、服务发布简介 分布式系统架构下,...
  • 这些都是本人在2016年中面试过程中收集的题目,希望能对大家有所帮助,只限于初级程序员
  • Java初级程序员面试必备的基础知识总结

    万次阅读 多人点赞 2018-01-25 22:24:16
    1)垃圾回收是一个自动的系统行为,程序员不能控制垃圾回收的功能和行为。 ( 2)有一些跟垃圾回收相关的方法,比如:System.gc( ) ,调用这些方法,仅仅是在通知垃圾回收程序,至于垃圾回收程序运不运行,什么...
  • 初级前端面试题最新汇总

    千次阅读 2021-11-24 00:11:54
    面试题 一、宏观 1. 自我介绍 2. 你能说一下你是如何自学前端的 好的。首先前端开发的东西是要跑在浏览器里面的,浏览器只能识别html,css,js的。所以我觉得这三块是我们入行最基础的东西,学好这些之后。然后呢...
  • 那么,Web前端面试题有哪些呢?本文和大家分享一个难到了很多Web前端工程师的面试题:Quirks模式是什么?它和 Standards 模式有什么区别? 准备参加Web前端工程师面试的小伙伴们来和我一起看一看吧,希望本篇文章...
  • Java初级面试题整理 (147题)。

    千次阅读 2020-08-16 23:19:48
    先看再点赞,给自己一点思考的时间,如果对自己有帮助,微信搜索【程序职场】关注这个执着的职场程序员。 我有什么:职场规划指导,技能提升方法,讲不完的职场故事,个人成长经验。 1. Java语言有哪些特点? ...
  • PHP初级程序员面试基础: 1表单中 get与post提交方法的区别? 答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息. 2session与cookie的区别? 答:session:储存用户访问的...
  • 初级PHP程序员面试

    2017-07-07 14:08:00
    第一:当你是还处在初级程序员要做好应对专业性的问题 面试的时候可能会遇到专业点的面试官,有时候可能会询问一下比较抽象的概念,如面向对象的理解、MVC和MVVM设计模式的理解。其它的如session、各种奇奇怪怪的...
  • 初级程序员必备Linux面试题,收集来自阿里云开发者社区,包括linux,shell,性能调优,常用linux命令等问题和回答
  • java基础适合刚学习和即将面临找工作的初级程序员
  • Java初级程序员面试必备的基础知识总结.docx
  • 什么是.NET?什么是CLI?什么是CLR?IL是什么? .NET是微软的新一代技术平台,为敏捷商务构建互联互通的应用系统,这些系统是基于标准的、联通的、适应变化的、稳定的和高性能的。从技术的角度,一个.NET应用是一个...
  • Unity3D初级工程师面试题及知识点

    千次阅读 2021-10-13 14:42:52
    Unity3D初级工程面试题目整合C#基础部分一、修饰符二、委托、事件和回调函数三、接口跟抽象类的区别是什么?什么时候使用接口?什么时候使用抽象类?四、值类型跟引用类型的区别?五、游戏优化,如何优化减少GC?六...
  • 初级到高级再到架构师的面试题,都有
  • 关于初级PHP程序员 面试题 适合初学者和找工作的人群,大量的关于初级程序员面试和笔试题。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,534
精华内容 5,413
关键字:

初级程序员面试题