Java基础面试题—语法篇一

1.Java中的重载与重写有什么区别 方法重载:在一个类中有多个同名方法,但是参数个数或者类型不相同,调用时通过传递给他们不同的参数个数和类型来决定使用哪个方法,重载的时候方法名要一样,参数个数和类型不一样,返回值类型可以一样也可以不一样,不能以返回值类型作为重载函数的区分标准 重载是为了让类以统一的方式处理不同类型数据的一种手段,是一个类中多态性的一种表现 重写:父类与子类间的多态性,是对父类函数的重新定义,如果子类中某方法与父类有相同的的名称和参数则该方法被重写,不过子类函数的访问修饰权限
分类: 其他 发布时间: 03-24 22:42 阅读次数: 0

Java基础面试题—语法篇二

1.一个".java"源文件中是否可以有多个类(不是内部类)?有什么限制? 可以有多个类,但是只能有一个public类,并且public类的类名必须与文件名一致 2.Java有没有goto? Java中的保留字,现在没有在Java中使用 3.Java中&和&&的区别 在Java中&和&&都表示逻辑与的运算符,当运算符两边的表达式都为true时,整个运算结果才为true,否则只要有一个是false,结果就是false &&还具有短路的功能,即如果第一个表达式为false,后一个表达式就不会再执行
分类: 其他 发布时间: 03-24 22:41 阅读次数: 0

Java中创建线程的四种方法

1.继承Thread类创建线程类 (1).定义Thread类的子类,并重写该类的run方法,该run方法的方法体就是线程要完成的任务,因此把run()方法称为执行体 (2).创建Thread子类的实例,就是创建了线程对象 (3).调用线程对象的start()方法来启动该线程 具体代码: package com.thread; public class FirstThreadTest extends Thread{ int i = 0; //重写run方法,r
分类: 其他 发布时间: 03-24 22:41 阅读次数: 0

Java基础面试题之多线程一

1.什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒 2.什么是线程安全?Vector是一个线程安全类吗? 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码,如果每次运行的结果和单线程运行的结果是一样的,而且其他变量的值和预期的一样,就是线程安全的。一个线程安全的
分类: 其他 发布时间: 03-24 22:41 阅读次数: 0

Spring IOC/DI介绍

1.Spring IOC IOC(Inversion of Control):控制反转,IOC是一种面向对象的设计思想,可以减低代码间的耦合度,其中最常见的方式叫做依赖注入(DI)。IOC意味着将你设计好的对象交给容器控制,而不是传统的在你对象内部控制 控制反转三个问题: 1.谁控制谁 2.控制了什么 3.为什么反转了 谁控制谁,控制什么:在传统Java代码中,我们直接在对象内部通过new创建对象,是程序主动去创建对象。而IOC中专门有一个容器来创建这些对象,即由IOC容器来控制对象的创建,主
分类: 其他 发布时间: 03-24 22:40 阅读次数: 0

Java面试题之框架一

1.不同版本的Spring有哪些主要功能? 版本 特征 Spring2.5 发布于2007年,这是第一个支持注解的版本 Spring3.0 发布于2009年,完全利用了Java5中的改进,并为JEE6提供了改进 Spring4.0 发布于2013年,这是第一个完全支持JAVA8的版本 2.什么是Spring? Spring是一个Java企业级应用的开源开发框架,旨在降低应用程序开发的复杂度,它是轻量级的,松散耦合的,它具有分层体系结构,允许用户选择组件,还可以集成其他框架,所以又被称为框架的框
分类: 其他 发布时间: 03-24 22:40 阅读次数: 0

Java基础面试题—集合框架篇一

1.Java集合框架是什么?说出一些集合框架的优点 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及它们的实现。集合框架的部分优点如下: (1)使用核心集合类降低开发成本,而非实现我们自己的集合类 (2)随着使用经过严格测试的集合框架类,代码
分类: 其他 发布时间: 03-24 22:40 阅读次数: 0

Java基础面试题—集合框架篇二

11.ArrayList和LinkedList的比较 (1)ArrayList是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高(在内存里是连着放的) (2)因为地址连续,ArrayList要移动数据,所以插入和删除操作效率比较低 (3)LinkedList是基于链表的数据结构,地址是任意的,所以在开辟内存空间的时候不需要等一个连续的地址,对于新增和删除操作,LinkedList效率比较高 (4)因为LinkedList要移动指针,所以查询操作性能比较低 当需
分类: 其他 发布时间: 03-24 22:40 阅读次数: 0

几大常用的排序算法一

1.桶排序 桶排序很简单,假如现在有10个数,需要对它们进行排序,首先我们就创建一个大小为10的数组来代表10个桶,然后将这10个数遍历一遍,这个数是几就放入第几个桶中,最后将所有桶遍历一遍,将桶中的数输出即可 下面来一个实例,第一行输入要排序的数的个数,第二行输入具体的数值,最后输出排序过后的数 具体代码如下: #include<bits/stdc++.h> using namespace std; int book[1001]; int main(){ int t,n;
分类: 其他 发布时间: 03-24 22:39 阅读次数: 0

Java知识点之JVM

1.Java内存区域: Java虚拟机在运行程序时会把其自动管理的内存划分为方法区、堆、程序计数器、虚拟机栈、本地方法栈,其中方法区和堆属于线程共享的数据区域,而程序计数器、虚拟机栈、本地方法栈属于线程私有的数据区域 方法区 (Method Area): 方法区属于线程共享的内存区域,又称Non-Heap(非堆),主要用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器、编译后的代码等数据,根据Java虚拟机规范的规定,当方法区无法满足内存分配需求时,将抛出OutOfMemoryErro
分类: 其他 发布时间: 03-24 22:39 阅读次数: 0

如何处理死锁

目前处理死锁的方法可归结为四种: 预防死锁 避免死锁 检测死锁 解除死锁 1.预防死锁 预防死锁的方法是通过破坏产生死锁的四个必要条件中的一个或几个,避免发生死锁 由于互斥条件是非共享设备所必须的,不仅不能改变,还应加以保证 1).破坏请求和保持条件 为了能破坏请求和保持条件,系统必须保证做到:当一个进程在请求资源时,它不能持有不可抢占资源 可以通过下面两个协议实现: 第一种协议:所有进程在运行之前,一次性申请其所需要的全部资源,如果系统有足够的资源分配给某进程,便把它所需要的所有资源分配给它
分类: 其他 发布时间: 03-24 22:38 阅读次数: 0

Java知识点之多线程

1.进程间的通信方式 无名管道通信:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用,进程间的亲缘关系通常是指父子进程 高级管道通信:将另一个程序当作一个新的进程在当前程序进程中启动,那么它算是当前进程的子进程,这种方式我们称为高级管道方式 有名管道通信:有名管道通信也是半双工的通信方式,但是它允许在无亲缘关系的进程间使用 消息队列通信:消息队列是消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信号少、管道只能承载无格式字节流以及缓冲区大小
分类: 其他 发布时间: 03-24 22:38 阅读次数: 0

Java中的类加载

1.类加载机制 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换、解析、初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制 2.类加载步骤 加载 在加载过程会完成3件事情: 通过一个类的全限定名获取该类的二进制流 将该二进制流中的静态存储结构转化为方法区运行时数据结构 在内存中生成该类的class对象,作为该类的数据访问入口 验证 验证类数据信息是否符合JVM规范,是否是一个有效的字节码文件,主要完成下面4种验证 文件格式验证:验证字节流是否符合
分类: 其他 发布时间: 03-24 22:37 阅读次数: 0

Mysql数据库中的索引

1.什么是索引 索引是对数据库表中的一列或者多列的值进行排序的一种数据结构,如果把数据库中的表比作一本书,索引就是这本书的目录,通过目录可以快速查找到书中指定内容的位置 索引也是一张表,该表中存储着索引的值和这个值的数据所在行的物理地址,使用索引后可以不用扫描全表来定位某行的数据,而是通过索引表来找到该行数据对应的物理地址 2.索引的优缺点 优点: 建立索引的列可以保证行的唯一性,生成唯一的rowId 索引可以有效缩短数据的检索时间,减少I/O次数 索引可以加快表与表之间的连接 为用来排序和分
分类: 其他 发布时间: 03-24 22:37 阅读次数: 0

第052讲: 模块:像个极客一样去思考 | 学习记录(小甲鱼零基础入门学习Python)

(标答出处: 鱼C论坛) 《零基础入门学习Python》 本节知识点: 在Python的社区里有句俗话:“Python自己带着电池(Batteries included)”,什么意思呢?要从Python的设计哲学说起,Python的设计哲学是:优雅、明确和简单。因此,Python开发者演变出来的哲学就是,用一种方法,最好是只有一种方法来做一件事。虽然我们常常努力大家多思考,条条大路通罗马,那是为了训练大家的发散式思维,但是在正式编程中,如果有完善、并且经过严密测试过的模块可以直接实现,那么我的
分类: 其他 发布时间: 03-24 22:37 阅读次数: 0

第053讲: 论一只爬虫的自我修养 | 学习记录(小甲鱼零基础入门学习Python)

(标答出处: 鱼C论坛) 《零基础入门学习Python》 本节知识点: 什么叫爬虫? 网络爬虫又称为网络蜘蛛(Spider),如果你把整个互联网想象为一个蜘蛛网的构造,每个网站或域名都是一个节点,那我们这只蜘蛛就是在上面爬来爬去,在不同的网页上爬来爬去,顺便获得我们需要的资源,抓取最有用的。做过网站的朋友一定很熟悉,我们之所以能够通过百度、谷歌这样的搜索引擎检索到你的网页,靠的就是他们每天派出大量的蜘蛛在互联网上爬来爬去,对网页中的每个关键字建立索引,然后建立索引数据库,经过了复杂的排序算法之
分类: 其他 发布时间: 03-24 22:36 阅读次数: 0

第054讲: 论一只爬虫的自我修养2:实战 | 学习记录(小甲鱼零基础入门学习Python)

(标答出处: 鱼C论坛) 《零基础入门学习Python》 本节知识点: 今天我们在实战中来进行学习,会举两个例子: 第一个例子是我们会下载一只猫, 第二个例子是我们用Python来模拟浏览器通过在线的有道翻译进行文本的翻译。 (一)使用Python下载一只猫 我们常说,林子大了,什么鸟都有。互联网这么大,那当然不管什么样的奇葩网站都会有。我们今天举的例子就是要访问一个 http://placekitten.com/, 这个网站是为猫农量身定制的一个站点,网站后面你只需要加上 /宽度/高度,就可
分类: 其他 发布时间: 03-24 22:36 阅读次数: 0

Beautiful Soup 4.2.0 文档

Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间. 这篇文档介绍了BeautifulSoup4中所有主要特性,并切有小例子.让我来向你展示它适合做什么,如何工作,怎样使用,如何达到你想要的效果,和处理异常情况. 文档中出现的例子在Python2.7和Python3.2中的执行结果相同 你可能在寻找 Beautiful Soup
分类: 其他 发布时间: 03-24 22:35 阅读次数: 0

第055讲: 论一只爬虫的自我修养3:隐藏 | 学习记录(小甲鱼零基础入门学习Python)

(标答出处: 鱼C论坛) 《零基础入门学习Python》 本节知识点: 上节课说过,有一些网站比较痛恨爬虫程序,它们不喜欢被程序所访问,所以它们会检查链接的来源,如果说来源不是正常的途径,那么它就会把你给屏蔽掉,所以呢,要让我们的程序可以持续的干活,要可以投入生产,我们就需要对代码进行隐藏,让它看起来更像是普通人浏览器的正常点击。 我们知道,服务器检查链接是通过检查 链接中的 Headers 中的 User Agent 来判断你是来自于代码还是来自于浏览器,像我们的Python,你用Pytho
分类: 其他 发布时间: 03-24 22:35 阅读次数: 0

第056讲: 论一只爬虫的自我修养4:OOXX | 学习记录(小甲鱼零基础入门学习Python)

(标答出处: 鱼C论坛) 《零基础入门学习Python》 本节知识点: 今天我们结合前面学习的知识,进行一个实例,从网络上下载图片,话说我们平时闲来无事会上煎蛋网看看新鲜事,那么,熟悉煎蛋网的朋友一定知道,这里有一个 随手拍 的栏目,我们今天就来写一个爬虫,自动抓取每天更新的 随手拍。 要写爬虫,首先要做的第一件事就是踩点,主动发现网页之间的规律,还有图片链接之间有什么规律,例如说,该网站的链接形式为:http://jandan.net/ooxx/page-‘页码数’#comments, (页
分类: 其他 发布时间: 03-24 22:35 阅读次数: 0