java基础(1)

1、java8的新特性

重复注解:java5中相同的注解在同一个位置,只能生命一次,java8引入的重复注解可以在同一个位置生命多次。
扩展注解的支持:java的注解广泛的很,甚至连方法的异常也可以添加。
optional:引入Optional类来放置空指针异常,Optional类实际上是一个容器,可以保存类型T,或者空值。
Base64:在java8中,Base64编码成为了java类库的标准,同时还提供了对URL,mime友好的编码器玉解码器。

2、java中创建线程的三种方式

a、继承Thread类创建线程类
 (1)定义一个Thread的子类,重写run方法。
 (2)调用start方法启动线程
 public class FirstThreadTest extends Thread{  
    int i = 0;  
    //重写run方法,run方法的方法体就是现场执行体  
    public void run()  
    {  
        for(;i<100;i++){  
        System.out.println(getName()+"  "+i);  

        }  
    }  
    public static void main(String[] args)  
    {  
        for(int i = 0;i< 100;i++)  
        {  
            System.out.println(Thread.currentThread().getName()+"  : "+i);  
            if(i==20)  
            {  
                new FirstThreadTest().start();  
                new FirstThreadTest().start();  
            }  
        }  
    }  


b、通过创建Runnable接口创建线程类
(1)重写run()方法
(2)创建Runnable实现类的实例,还是调用Thread的start()方法进行启动
 RunnableThreadTest rtt = new RunnableThreadTest();  
 new Thread(rtt,"新线程1").start();  
 new Thread(rtt,"新线程2").start();  

c、通过Callable和Future创建线程
(1)创建Callable接口的实现类,并实现call()

4、springMvc的执行流程

a、客户端发出一个请求到达web.xml 然后由dispatchservlet根据mapping映射配置去找队形的handel,handel封装了处理业务的逻辑代码。处理完后返回一个modelAndview给dispatchservlet。

5、对ajax的理解

a、ajax异步请求,局部刷新页面

6、外部类与内部类的调用

a、内部类可以直接调用外部类包括private的成员变量,this.关键之调用即可
b、外部类调用内部类需要建立内部类对象

7、多线程

a、进程是一个独立运行环境,线程可以看做是进程的一个任务,qq是一个进程,qq窗口是一个线程。

8、AOP与IOC的概念

a、IOC:控制反转,创建对象的方式优原来的在代码中,转变为了在容器中创建。
b、AOP:面向切面编程

9、Arraylist与LinkedList的区别

a、前者是数组结构,后者是链表结构,获取特定元素的时候,ArrayList比较快,他通过数组下标直接获取,而linkedlist则需要移动指针。删除元素的时候,linkedlist比较快。

10、类加载的过程

a、遇到一个新的类时,首先会到方法区去找class文件,如果没有找到就会去硬盘中找class文件,找到后就会返回,将class文件加载到方法区中,在类加载的时候,静态的成员变零会被分配到方法去的静态区域,非静态分配非静态区域。当所有的静态代码执行完,类加载才算完成。

11、事物的特性

a、原子性:是指在一个事物中,妖魔全部执行成功,要么全部失败滚回
b、一致性:事物执行之前和执行之后都处于一致性状态
c、持久性:事物多数据的操作是永久性
d、隔离性:当事物正在对数据操作时,另一个事物不可以对数据进行操作,也就是多个并发事物之间相互隔离。

12、匿名内部类

 a、匿名内部类是没有名字的内部类,不能继承其他类,但一个内部类可以作为一个接口,由另外一个内部类实现。

14、&和&&的区别、

&是位运算符,&&是逻辑运算符,表示逻辑与and

15、Collection和Collections的区别

Collection是集合类的上级接口,继承他的几口只要有Setlist,Collections是针对集合类的一个帮助类,他提供的一系列静态方法实现对各种集合的搜索,排序,线程安全化操作。

16、数组和String

a、数组没有length()方法,有length这个属性,String有length()

17、Set不能重复,那么使用什么方法类区别重复与否呢

iterator

18、

1)构造器不能被继承,所以不可以被重写,可以被重载
2)String类是final类,所以不可被继承
3)两个对象值相同(x.equals(y)==true),他的hash code也相同
4)Java编程语言只有值传递
5)一个char16个字节,所以放一个中文是没有问题的
6)String和StringBuffer的区别:
   String的长度是不可变的,StringBuffer可以
7)谈final,finally,finalize的区别:
   final:如果一个类被声明成final,意味着它不能派生出新的子类,不能作为父类被继承,被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
   finally:
   finalize:
 8)instanceof作用是什么?
   他首先是比较运算符,判断某个对象是否属于某个类,返回结果是boolean.
 9)breakcontinue
   break:跳出循环体
   continue:忽略本次循环,进行下次循环
 10)数组的长度和赋值不能同时进行
 11)switch语句能否作用在byte上,能否作用在long上或者String上?
    在switch(value)中,value只能是整形表达式或枚举常量,其中,整形表达式可以是int或者Internet类型。因为byte,short,char可以隐式的转换为int,所以这些类型都可以作为switch的值;但是long,String不可以转换为整型
  12)Java中Runnable和Callable有什么不同
     Runnable从JDK1.0开始就有了,Callable是在JDK1.5才有的
     区别:Callable的call()方法可以返回值和抛出异常,而Runnable的run()方法没有这些功能
  13)Servlet生命周期
      a、web容器加载servlet,开始生命周期
      b、调用init()初始化
      c、调用service(),该方法会根据请求的不同调用不同的do**()
      d、结束服务时,调用destory()
  14)forward()和redirect()
     forward():服务器内部的重定向,地址栏不变
     redirect():地址栏改变
  15)java中error和exception的区别
      相同点:Error和exception类的父类都是throwable类
      区别:error类一般是指与虚拟机有关的问题系统崩溃,内存空间不足
           Exception类表示程序可以处理的异常。
  16)Session cookie的区别
     session的数据是放在服务器上,cookie则放在客户浏览器上
  17)wait()和sleep()的区别
      sleep来自Thread类,wait来自Object类
      调用sleep()方法的过程中,线程不会释放对象锁,而调用wait方法会释放对象锁。
      sleep睡眠后不出让系统资源,wait出让系统资环,其他线程可以占用CPU
      sleep(milliseconds)需要指定一个睡眠的时间,时间到的话会自动唤醒
   18) JAVA中堆和栈的区别
      a、堆是用来存放有new创建的对象和数组
      b、基本数据类型变量和对象的引用都是在栈分配的
   19)HashTable线程不安全,HashMap线程安全
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值