今天我公司一大神去面试小朋友,从他的问话交流中感觉得出来.他已经达一种超出写代码的层次,可能已经到了架构师以上的级别吧.
而问的一些问题,却是我早早准备面试题之外的话题.虽然我知道他问的这些是想了解我哪方面,可是我已经不知道如何去回答了.
特别是心里本来就对JAVA的理解不深,很多基础的知识脑子里也是一团,像二进制,虚拟机,进程等这些底层的东西,在写代码中很少会用到.
但如果想要有一个总的布局,了解你要写的类是如何去运行实现的.真的不会总结.老师在给我们讲的时候我也晕晕的.
下面我把回来查的资料总结一下:
一,在你心里JAVA是什么,
从来没有想过java是什么,每天面对的编程工具,一种和C,vb之类的一种机器语言?,脑子里一闪而过的是java是一个工具,编程的语言,但对于我这处刚改行的大龄青年来说,JAVA却是我这半年来生活的全部,也是我未来的工作目标,所以我说,java是一个环境,一个让我展示自己价值,和实现功能的一个环境.
二,什么是内存,CPU和JAVA的关系:
虽然在学校里就知道计算机的构造,原理,内存,CPU,硬盘,虚拟内存,南桥北桥,机器码,但和JAVA之间有多少关系,让我不知道如何开口.难道说CPU产生二进制信息,内存中开避出一个空间给JAVA虚拟机,是不要要说硬开盘中的空间给内存做虚拟内存,可这与虚拟机有什么关系?和类的变量,方法有什么关系? 值栈?堆?方法区? 是不是要解释虚拟机是如何动作的?越想下去,越不知道如何去说明白.
这些关系让我很头痛.真的不知道这些东西.PASS了.
二,什么是类?
经过前面的那些,我已经有种想跑的冲动,已经不知道如何去想这个了.每天写类,写抽象类.接口?可什么是类呢?
当然我知道他这是在问面向对象的理解,类是一切对象的实现基础,是实例变量与方法的集合,是引用变量的实体,,,,,,还是什么.
我回答:不知道...
三jsp.html.js三者之间的关系.
天.我能说我写的项目里都是jsp.没用过html吗?嘿嘿.
js是在jsp中引入的脚本文件,别的还真不知道如何区别.js实现图形化?不对.
html中可以使用js吗?这个....当然是可以的.
其实我是想回答.jsp就是servlet.解析返回的是html
四 进程和线程的关系:
这个问题之前也看过,
进程是一个程序必有的,线程又是进程必有的.线程是比进程更小的单元.
进程包含线程.这种说法太不专业了.
回来百度之后.才发现原来有这么多讲究:
程序可以有多个进程,(软件的健壮性),线程崩溃了,进程也就kill了. 线程体的资源很小很小,CPU分配执行的速度才快,线程之间共享资源(是和JAVA类的方法区一样吗?)
进程中只有一入口供线程来调用.能把这些说清了就完了.可是我还是不理解.
五什么是tomcat
好吧.这一个容器.环境,
说这个其实应该先说什么是servlet.sun公司定义的规范?又是规范,和W3C的html一样,,,
我建的servlet是看得到的类,为什么说一规范呢?
tomcat就是给这些servlet运行和管理的容器.同时也具备webServer所有功能.所以也可以说是一个服务器.
好吧.这些是我没有学好的问题.也许这些问题会伴我一辈子..也许我永远也弄不清说不明.