北京海淀区java培训地址在哪
第1阶段
Java语言发展简史,Java程序的执行过程,Java开发环境的搭建。
PATH、CLASSPATH环境变量的作用与意义,Java初学者易犯的错误。
Java反编译工具介绍。
计算机常用2进制、8进制、十6进制介绍,各进制与十进制之间的相互转化。Java基本语法,数据类型和变量,运算符,程序流程控制。数组和操作数组的类。针对数组的常用查找。javadoc与API文档。
方法,递归方法,排序算法原理,以及其Java实现。
阶段项目
项目练习与阶段测试 BubbleSort、SelectionSort、InsertionSort、ShellSort、DataSorter等各种数据处理技术。疯狂Java讲义前4章课后习题。
第2阶段
对象的本质,理解面向对象,类与对象的关系,掌握面向对象的思想。
面向对象的3大特性:封装、继承和多态,以及相应的Java实现。类里的5大成分,构造器,this关键字、类的实例化过程,
继承:子类对象的实例化过程、方法的重载、方法的重写,方法和方法的参数传递过程。访问权限控制符与封装,final关键字、抽象类、接口、继承的优点和缺点剖析。继承与组合。基本数据类型及其包装类
多态性:子类和父类之间的转换、抽象类和接口在多态中的应用、多态带来的好处。Extensibility的理解 、Extensibility的运用。常用设计模式:Singleton、Template、Strategy模式。
枚举、内部类,创建内部类实例、继承内部类,初始化块与静态初始化块,Java的垃极回收机制,Java的软、弱、虚引用。
第3阶段
Java集合框架:Collection、Set、List、Queue、ArrayList、Vector、LinkedList、HashSet、LinkedHashSet、TreeSet、ArrayDeque、Map、HashMap、Hashtable、LinkedHashMap、TreeMap、Iterator、Enumeration等常用集合类API。
Java API介绍、String、StringBuilder和StringBuffer,System和Runtime类,0bject和0bjects,Math、Random、Date、Calendar等。
程序国际化,Locale类、MessageFormat、NumberFormat、DateFomat和SimpleDateFormat等。资源包(ResourceBundle类、ListResourceBundle类、PropertyResourceBundle类)的应用,Property资源文件与native2ascii工具。
Java正则表达式支持,Pattern、Matcher以及String类的正则表达式支持。
异常处理,try、catch、finally关键字,自动关闭资源的try语句。AutoCloseable和Closable
界面编程、AWT与Swing,布局管理器,事件机制,剪贴板与拖放功能。
Swing组件的设计思想,JList、JTree、JTable、JTextPane常用组件的用法。
阶段项目
5子棋、梭哈、俄罗斯方块等小游戏。
第4阶段
I0概念,File和RandomAccessFile类,字节流InputStream和0utputStream,字符流Reader和Writer,以及相应实现类,I0性能分析,字节和字符的转化流,包装流的概念,以及常用包装类,计算机编码。
Java NI0,Buffer、Channel等NI0.2的Path、Paths、Files、FileVisitor、WatchService,各种Attributes和AttributeView等。
多线程的概念,如何在程序中创建多线程(Thread、Runnable、Callable),线程睡眠(sleep)、线程让步(yield),线程安全问题,线程的同步,线程之间的通讯、死锁。线程组、线程池等。线程安全的集合类,ThreadLocal等。
Java网络编程,网络通信底层协议TCP和UDP,以及其相应的Java实现: ServerSocket,Socket、DatagramSocket,DatagramPacket、MulticastSocket编程。网络通信常用应用层协议简介:、SMTP、P0P3、MIME,以及Web服务器的工作原理。
Java对代理服务器的支持,自动的代理选择器。
Java的*特性:反射、代理和泛型。
阶段项目
Java版的Windows命令行工具(实现cd、copy等常用命令)。
网络斗地主、Java版游戏大厅等。
第5阶段
HTML语言,常用HTML标签、格式标签、文件标签、超链接标签、图像标签、客户端图像Map、表格标签、帧标签、表单标签、头元素、分区标签。CSS介绍,添加CSS的方法、CSS选择器、CSS属性介绍。
编程,语法、运算符、流程控制、函数、数组、对象、的内置对象,的动态特征,基于对象特性,中的正则表达式及其应用,DHTML编程,理解D0M树,D0M对象,常用D0M对象的属性、方法和事件,事件处理机制、使用D0M操作HTML文档、遍历文档树上的节点、文档中特定的元素、修改文档内容、往文档添加新内容、使用D0M操作XML文档。使用D0M编程控制CSS样式。
阶段项目
商业级网页制作,网页换肤,
HTML表格排序,可编辑的HTML表格,菜单、树形结构等。
网页游戏。如5子棋、俄罗斯方块
3年以下经验程序员的面试方法论
基础类问题:
每个类型都可以继续往下细分,这里以基础类作为讲解,我会提三个问题:
1、什么是面向对象
2、说一个你熟悉的数据结构
3、说一个你熟悉的算法
一题是*须题,后面两道都是用于加分。
很简单?说一个事实,在我两省十多所大学四年的面试经验中,这三道题能过滤掉八成的毕业生。来看我怎么提问的:
问题一 :
该问题的难度以“吃方法”分野。
之前基本是考察语法和封装性,以及对基本概念的重视程度。在提示之后依然没有意识到自己错误的,坚决不用。
吃方法属于进阶题,看着很简单,对于很多程序员来说就是直觉性就明白的问题吧?其实,这是需要多种能力的:
a、猫吃老鼠,要能理解猫是一个类,吃是一个方法,老鼠是一个类,作为吃的参数;
b、猫吃鱼同理,吃老鼠和吃鱼这两个行为,本质上来说,都是吃食物
c、食物是单独是个接口,老鼠和鱼都是它的实现类。
看,面向对象分析理解,抽象能力,继承和多态的应用,接口和类的理解,具备所有这些,才能准确的做好这个吃方法。
问题二:
说一个熟悉的数据结构,又或者,简单一点,说一下 LinkedList和ArrayList 的区别。
相信很多面试者都遇到过这道看上去很蠢的题,网上有很多答案,他们说的基本都没错,但是,按这些答案来回答,不会给出很高的评价。
这样提问:为什么 LinkedLis t查询会比 ArrayList 慢?又或者,如果 java 没有提供 LinkedList,你要如何实现出来?
这里考验的能力有两个,两者有其一,都可以打出。
1、对于需求的理解能力
2、阅读源码的兴趣和能力
链表的定义是“表由一系列结点(链表中每一个元素称为结点)组成,每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域”。
把这一段话当成需求,那么,名词有:表、结点、数据域、指针域。
同时又能得出它们的包含关系,表里有多个结点,结点里有数据域和指针域两个部分。
完成了这一部分分析,自然就能设计出对应的 LinkedList 类。查询为什么会慢呢?查询对应的是 get方法,get(i) 自然是要从头结点的指针域迭代 i 次,取出对应结点数据域,这个迭代过程导致了慢。
无论是通过自行分析还是阅读过源码懂得这个道理的,都说明具备一定能力或潜力。
问题三 :
说一个熟悉的算法?
其实这里考验的是多个层级:
1、是否有认真准备面试
2、数理逻辑水准
3、算法水准
拿常见的排序算法说事,能说出任意排序算法原理,说明至少有认真对待面试。
能说出快排、桶排、堆排等复杂一点的排序算法,并且能指出得到差和优结果的输入,这一部分,需要面试者能在脑中模拟算法运行,根据算法本身的原理,来解释为什么快和慢。
有认真学习过算法,理解时间复杂度本身是什么概念。
举个例子,一个算法的平均时间复杂度是 O(1),另一个是O(n),真正执行的时候,前者会比后者快吗?
答案是不一定,因为我压根没提输入是什么。
如果不能理解 O(n) 描述的是趋势,那么,对算法的理解就还未入门。
又比如,如何计算一个归并算法,比如 T(n)=T(n/2)+n/2 的时间复杂度。这一方面考验了算法,一方面又考验了面试者的学习能力。
框架原理和应用类问题:
面试官需要明白,框架问题回答不上来,并不说明对方比你差。
每个人的专精方向是不一样的,框架这种事,也就是个工具学习和经验的问题。用业务相关问题问同行的老鸟,能够理解,来问毕业生和新手,问并不使用该框架的老鸟,就很莫名其妙。
对于这种情况应该如何考察呢?
框架不一样,思想有相同。
1、询问对方熟悉的框架
2、询问框架使用中遇到的困难的问题
3、有没有阅读过框架源码,解释一下框架某部分功能的实现原理
对于自己熟悉的框架的了解程度,能说明面试者的真实水准。
有些新手使用框架的时间都很短,那么,可以换个方式出题,比如:“你知道 spring 的依赖注入吧?假设 spring 没有这种功能,让你来写这个,会如何写?”
依赖注入并不是什么黑科技,了解反射理解面向对象的程序员,都能答出个一二三四。
总结:
公司和员工是双向选择关系,应聘者大可不必把自己放到“求”职的低位,面试官也请勿趾高气扬。
不管招聘还是应聘,无非就是了解自己和对方的需求,然后展现优势,而已。
更多培训课程,学习资讯,课程优惠等学校信息,请进入 北京海淀区IT培训北京海淀区php培训北京海淀区java培训 网站详细了解,免费咨询电话:400-998-6158