1,问为什么要做互联网行业
答:觉得互联网以后会作为流量入口
(应该答觉得像微电影,微车这种App以后会很有市场)
2,问生成线程的方法,Thread能不能run()
答:有两种方法:继承Thread类然后实现它的run();实现Runnable接口,然后实现run()。
(答错了了Thread可以run(),但是run这里是方法的调用,实际上还是一个主线程。而start()则是启动一个线程)
3,线程与进程的区别
答:1,进程是程序的一次执行,线程是程序的一个片段;2,进程之间是相互独立的,同一进程的线程可以共享一片内存空间;3。。。
4,abstract类和interface的区别,可以没有抽象方法的抽象类吗
答:接口是抽象类的变体,其所有方法都是抽象的。抽象只是声明方法的存在而不去实现它的类
1,接口是公开的,里面不能有私有的方法或变量即只能public。而抽象可以有
2,实现接口一定要实现其所有方法,而抽象类里的方法可以不是抽象的,有抽象方法的类一定是抽象类
3,接口和抽象类的变量都可以有全局变量,即static final修饰,而抽象类有普通的成员变量,接口无
4,抽象类中可以有构造方法(即有重载),而接口不可以有
5,抽象类中可以有静态方法,而接口不可以有
5,Java中内存的分配
寄存器:JVM内部虚拟寄存器,存取速度非常快,程序不可控制
栈(stack):保存局部变量的值包括:1,基本数据类型;2,类的实例,即堆区对象的引用
堆(heap):用来存放动态产生的数据,比如new出来的对象,但是只包含自己的成员变量,而类的方法是共享的
常量池:包括基本数据类型,String和对其他类型方法,字段的符号引用。常量池存在堆中
代码段:用来存放从硬盘上读取的源程序代码
数据段:用来存放由static定义的静态成员
6,Exception和Error的区别,什么叫runtime exception
1,exception继承于lang.Throwable的lang.Exception;error继承于lang.Throwable的lang.Error
2,Error是JVM层次的系统严重错误不应该去catch,Exception是程序员导致的非严重错误应该catch
系统遇到异常会往上抛,一直到处理代码,如果没有处理模块,多线程就抛到Thread.run(),单线程就到main().抛出后如果是线程,线程就退出,如果是主程序,主程序,整个程序就退出,所以我们要捕捉异常,不让它退出
Runtime Exception就是能通过编译,但运行时会抛出的异常,想数组越界访问等,不是I/O!是unchecked,编译器不允许catch
7,四个修饰符,protected和default的区别
public:可以被所有类访问
private:自能被自己访问和修改
protected:自身,子类,同一个包中的类可以访问。
default:同一个包中的类可以访问
8,算法,手写插入法
9,找到循环数组中的分界点
感悟就是基础概念要背
写代码之前要把伪码弄清,这样思路才清晰