为什么牛客网java题库上的代码排行榜中前排都是java语言

牛客网-专业IT笔试面试备考平台,最全C++JAVA前端求职题库,全面提升IT编程能力
精准能力评估+针对性专项练习
要练,就要练最有用的!
互联网公司真题+模考+面经
公司考什么?怎么考?一刷便知!
精华专题练习
面试经典题在线练,还能赢内推
以题会友,涨姿势交朋友
你不会的,这里都能找到答案!
蘑菇街应用软件开发
阿里巴巴C++研发工程师
奇虎360数据挖掘工程师
京ICP备号-4
扫一扫,把题目装进口袋1.java把表示范围大的数转换为表示范围小的数,需要强制类型转换。
Java中,数据类型分为基本数据类型(或叫做原生类、内置类型)和引用数据类型。原生类型为基本数据类型int和布尔值可以相互转换吗???不可以,这里是Java,不是C,。
2.另外,JVM运行程序主要的时间耗费是在创建对象和回收对象上。
String对String&&类型进行改变的时候其实都等同于生成了一个新的&&String&&对象,然后将指针指向新的&&String&&对象,而不是StringBuffer;StringBuffer每次结果都会对&&StringBuffer&&对象本身进行操作,而不是生成新的对象,再改变对象引用。
&String S1 = &This is only a& + & simple& + & test& ;
在编译的时候S1就是常量了可以理解为&&String S1 = &This is only a simple test& ;&,不存在运行时对字符串的处理,所以效率最高。
java中,StringBuilder和StringBuffer的区别,下面说法错误的是?
正确答案: C &&你的答案: C&(正确)
StringBuffer是线程安全的
StringBuilder是非线程安全的
StringBuffer对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象。
效率比较String&StringBuffer&StringBuilder,但是在 String S1 = &This is only a& + & simple& + & test&时,String效率最高。4.
HashMap和HashTable的描述,错误的是?
正确答案: D &&你的答案: D&(正确)
他们都实现了Map接口。
HashMap非线程安全,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供额外同步。
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
通过contains方法可以判断一个对象是否存在于HashMap或者Hashtable中。
我贴一下关于两者相关的源码供大伙参考一下:
//HashMap的源码
public class HashMap&K,V&
extends AbstractMap&K,V&
implements Map&K,V&, Cloneable, Serializable
-----------------------------------
//Hashtable的源码
public class Hashtable&K,V&
extends Dictionary&K,V&
implements Map&K,V&, Cloneable, java.io.Serializable
----------------------------------
很明显,都实现了Map接口,所以,A正确
----------------------------------------------------------------------------------------------
public V put(K key, V value) //HashMap的put方法,没有同步
public synchronized V put(K key, V value) //Hashtable的put方法
//当然,Hashtable的其他方法,如get,size,remove等方法,
//都加了synchronized关键词同步操作
------------------------------------------------------------------------------------------------
//Hashtable的put方法有以下语句块,大伙看了都知道
// Make sure the value is not null
if (value == null) {
throw new NullPointerException();
//那么,我们再来看下HashMap的put方法中,有如下语句
//调用某个方法直接把key为null,值为value的键值对插入进去。
if (key == null)
return putForNullKey(value);
--------------------------------------------------------------------------------------
//以下是Hashtable的方法
public synchronized boolean contains(Object value)
public synchronized boolean containsKey(Object key)
public boolean containsValue(Object value)
//以下是HashMap中的方法,注意,没有contains方法,所以,D错误
public boolean containsKey(Object key)
public boolean containsValue(Object value)
HashMap&把&Hashtable&的&contains&方法去掉了&,改成&containsvalue&和&containsKey&。因为&contains&方法容易让人引起误解。
执行以下程序后的输出结果是()
public class Test {
public static void main(String[] args) {
&&&&StringBuffer a =&new StringBuffer("A");&
&&&&StringBuffer b =&new StringBuffer("B");&
&&&&operator(a, b);&
&&&&System.out.println(a +&"," + b);&
public static void operator(StringBuffer x, StringBuffer y) {&
&&&&x.append(y);&y =&
正确答案: D &&你的答案: D&(正确)
AB,B答:a,b是对象的引用,指向堆内存,将a,b两个引用传给x,y,执行x.append(y),改变了x引用指向的堆内存的存储内容,变为AB,&y = x,表示引用y,指向引用x指向的存储区域,没有改变引用b,指向的存储空间的内容。11.ConcurrentHashMap使用segment来分段和管理锁,segment继承自ReentrantLock,因此ConcurrentHashMap使用ReentrantLock来保证线程安全。12.
以下代码在编译和运行过程中会出现什么情况
public class TestDemo{
&&&&private int
&&&&public static void main(String[] args) {
&&&&&&&&TestDemo test=new TestDemo(88);
&&&&&&&&System.out.println(test.count);
&&&&&TestDemo(int a) {
&&&&&&&&&count=a;
正确答案: A &&你的答案: B&(错误)
编译运行通过,输出结果是88
编译时错误,count变量定义的是私有变量
编译时错误,System.out.println方法被调用时test没有被初始化
编译和执行时没有输出结果private是私有变量,只能用于当前类中,题目中的main方法也位于当前类,所以可以正确输出20.
下面有关 JAVA 异常类的描述,说法正确的有()
正确答案: A C &&你的答案: A B C&(错误)
异常的继承结构:基类为 Throwable,Error 和 Exception 继承 Throwable,RuntimeException 和 IOException 等继承 Exception
非 RuntimeException 一般是外部错误,其必须被 try{}catch 语句块所捕获
Error 类体系描述了 Java 运行系统中的内部错误以及资源耗尽的情形,Error 不需要捕捉
RuntimeException 体系包括错误的类型转换、数组越界访问和试图访问空指针等等,必须 被 try{}catch 语句块所捕获
&都是Throwable的子类:&1.Exception(异常)&:是程序本身可以处理的异常。&
2.Error(错误):&是程序无法处理的错误。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,一般不需要程序处理。
3.检查异常(编译器要求必须处置的异常)&:&&除了Error,RuntimeException及其子类以外,其他的Exception类及其子类都属于可查异常。这种异常的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。
4.非检查异常(编译器不要求处置的异常):&包括运行时异常(RuntimeException与其子类)和错误(Error)。
阅读(...) 评论()将许多文件组合成一个jar文件
javadoc 它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。
javah 把java代码声明的JNI方法转化成C\C++头文件。 JNI可参考java核心技术卷二第12章
public class HelloNative {
public static native void greeting();
使用javah后生成
/* DO NOT EDIT THIS FILE - it is machine generated */
#include &jni.h& /* Header for class
javaTest_semaphore_HelloNative */
#ifndef _Included_javaTest_semaphore_HelloNative #define
_Included_javaTest_semaphore_HelloNative #ifdef __cplusplus
extern &C& { #endif /*
javaTest_semaphore_HelloNative
Signature: ()V
*/ JNIEXPORT void JNICALL
Java_javaTest_semaphore_HelloNative_greeting(JNIEnv *, jclass);
#ifdef __cplusplus } #endif #endif
javac编译。javah生成c++头文档。javadoc生成解释API文档。jar,打包。
命令格式是
javadoc -d
存放文档的路径 java 源文件
Javac编译Java Javadoc制作帮助文档
将许多文件组合成一个jar文件
javadoc 它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。
javah 把java代码声明的JNI方法转化成C\C++头文件。 JNI可参考java核心技术卷二第12章
class HelloNative {
public static native void greeting();
使用javah后生成
/* DO NOT EDIT THIS FILE - it is machine generated */
#include &jni.h& /* Header for class
javaTest_semaphore_HelloNative */
_Included_javaTest_semaphore_HelloNative #define
_Included_javaTest_semaphore_HelloNative #ifdef __cplusplus extern
&C& { #endif /*
javaTest_semaphore_HelloNative
* Signature: ()V
*/ JNIEXPORT void JNICALL
Java_javaTest_semaphore_HelloNative_greeting(JNIEnv *, jclass);
__cplusplus } #endif #endif
jar打包 javac编译 javah
按照一定格式生成程序的文档的工具。
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
京ICP备号-4
扫一扫,把题目装进口袋随笔分类 - 牛客网Java笔试面试刷题
摘要: 不多说,直接上干货! 首先来说一个非常形象的例子,来说明下数组和链表。 上体育课的时候,老师说:你们站一队,每个人记住自己是第几个,我喊到几,那个人就举手,这就是数组。 老师说,你们每个人记住自己前面的人和后面的人,然后老师只知道第一人是谁。 然后你们各自由活动,老师要找某一个人,是不是每次都是从第
大数据和AI躺过的坑 阅读(104) |
摘要: 不多说,直接上干货! HashMap 和 HashSet的区别是Java面试中最常被问到的问题。如果没有涉及到Collection框架以及多线程的面试,可以说是不完整。而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整。HashMap和HashSet都是coll
大数据和AI躺过的坑 阅读(65) |
摘要: 不多说,直接上干货! 这篇我是从整体出发去写的。 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合 牛客网Java刷题知识点之Map的两种取值方式keySet和entrySet
大数据和AI躺过的坑 阅读(79) |
摘要: 不多说,直接上干货! 这篇我是从整体出发去写的。 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合 接口java.util.Map,包括3个实现类:HashMap、Hashta
大数据和AI躺过的坑 阅读(71) |
摘要: 不多说,直接上干货! 这篇我是从整体出发去写的。 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合 List集合中子类 Vector、ArrayList、LinkedList
大数据和AI躺过的坑 阅读(81) |
摘要: 不多说,直接上干货! 首先,大家要搞清楚,java里的内存是怎么分配的。详细见 牛客网Java刷题知识点之内存的划分(寄存器、本地方法区、方法区、栈内存和堆内存) 哪些内存需要回收 其实,一般是对堆内存而言的。 垃圾回收算法过程 在Java语言中,GC(Garbage Collection)是一个非
大数据和AI躺过的坑 阅读(30) |
大数据和AI躺过的坑 阅读(21) |
摘要: 不多说,直接上干货! HashMap的实现原理 HashMap是基于java.util.map接口的实现,该实现提供了所有的对Map的可选操作,同时也允许null类型的key以及value (HashTable与此大致相同,只是HashTable是同步的,不过HashTable一般被认为是已经过时的
大数据和AI躺过的坑 阅读(231) |
摘要: 不多说,直接上干货! OSI七层参考模型 应用层 为应用程序提供服务并规定应用程序中通信相关的细节。包括文件传输、电 子邮件、远程登录(虚拟终端)等协议。 表示层 将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换 为上层能够处理的格式。因此它主要负责数据格式的转换。具体来说,就是将
大数据和AI躺过的坑 阅读(25) |
摘要: 不多说,直接上干货! 内存溢出和内存泄漏的区别 内存泄漏指你用malloc或new申请了一块内存,但是没有通过free或delete将内存释放,导致这块内存一直处于占用状态。 内存溢出指你申请了10个字节的空间,但是你在这个空间写入11或以上字节的数据,就是溢出。 内存泄漏是指你向系统申请分配内存进
大数据和AI躺过的坑 阅读(35) |
摘要: 不多说,直接上干货! 什么是拥塞? 当大量的分组进入通信子网,超出了网络的处理能力时,就会引起网络局部或整体性能下降,这种现象称为拥塞。拥塞常常使问题趋于恶化。 另一种对拥塞的解释,即对资源的需求超过了可用的资源。若网络中许多资源同时供应不足,网络的性能就要明显变坏,整个网络的吞吐量随之负荷的增大而
大数据和AI躺过的坑 阅读(167) |
摘要: 不多说,直接上干货! 首先,对于什么是TCP协议,什么是UDP协议,以及具体的区别。我这里不多赘述,请见 牛客网Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤
大数据和AI躺过的坑 阅读(92) |
摘要: 不多说,直接上干货! TCP和UDP是两个传输层协议,广泛应用于网络中不同主机之间传输数据。对任何程序员来说,熟悉TCP和UDP的工作方式都是至关重要的。这就是为什么TCP和UDP是一个流行的Java编程面试问题。 Java开发人员应该理解这两个协议的理由是, java广泛用于编写多线程、并行以及可
大数据和AI躺过的坑 阅读(150) |
摘要: 不多说,直接上干货! 说简单点,就是,先对hashcode,然后对eauals。 以下是HashMap的jdk1.6 : 以下是HashMap的jdk1.7 : 以下是HashMap的jdk1.8 : equal() 和hashCode()方法都是基类Object的方法 其源码如下: 因此,equa
大数据和AI躺过的坑 阅读(28) |
摘要: 不多说,直接上干货! 获取文件名称、获取文件路径、获取文件大小、获取文件修改时间 FileMethodDemo.java 创建与删除 FileMethodDemo.java 判断 FileMethodDemo.java 重命名 FileMethodDemo.java 系统根目录 FileMethod
大数据和AI躺过的坑 阅读(253) |
摘要: 不多说,直接上干货! CopyTextByBufTest.java
大数据和AI躺过的坑 阅读(27) |
摘要: 不多说,直接上干货! 把提高效率的动作,封装成一个对象。即把缓冲区封装成一个对象。 就是在一个类里封装一个数组,能对流锁操作数据进行缓存。 什么是字符流缓冲区? 善于使用字符流缓冲区,减轻负担,提高下效率。 其实啊,无非是将源中数据,存储到自定义数组里,进行缓存。并对数组操作,从而提高效率。 即Bu
大数据和AI躺过的坑 阅读(106) |
摘要: 不多说,直接上干货! CopyTextTest.java 还可以这样来写。 CopyTextTest.java
大数据和AI躺过的坑 阅读(35) |
摘要: 不多说,直接上干货! IO流用来处理设备之间的数据传输。 java对数据的操作是通过流的方式。 java用于操作流的对象都在IO包中。 IO流按操作数据分为两种:字节流和字符流。 IO流按流向分为:输入流、输出流。 输入流和输出流 输入流做什么事: 将硬盘中的数据读出来,放到内存里去运算。 输出流做
大数据和AI躺过的坑 阅读(64) |
摘要: 不多说,直接上干货! 什么是匿名对象? 答: 没有名字的实体,也就是该实体没有对应的变量名引用。 没有名字的实体,没有引用类型变量指向的对象称作为匿名对象。 正常的,是 Car car = new Car(); 匿名对象的,是 new Car(); 匿名对象的简单演示 匿名对象的内存结构图 1:ne
大数据和AI躺过的坑 阅读(16) |
摘要: 不多说,直接上干货! 先来看个泛型概念提出的背景的例子。 GenericDemo.java 输出 以上是运行时期出现问题了。 定义了一个List类型的集合,先向其中加入了两个字符串类型的值,随后加入一个Integer类型的值。这是完全允许的,因为此时list默认的类型为Object类型。在之后的循环
大数据和AI躺过的坑 阅读(37) |
摘要: 不多说,直接上干货! 什么是进程? 正在进行中的程序(直译)。 什么是线程? 就是进程中一个负责程序执行的控制单元(执行路径)。 见 牛客网Java刷题知识点之进程和线程的区别 什么是多线程? 一个进程中可以多执行路径,称之为多线程。 一个进程中至少要有一个线程。 开启多个线程是为了同时运行多部分代
大数据和AI躺过的坑 阅读(36) |
摘要: 不多说,直接上干货! 什么是单例设计模式? 解决的问题:可以保证一个类在内存中的对象唯一性,必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。 如何保证? 1、不允许其他程序用new创建该类的对象 2、在该类中创建一个本类的实例 3、对外提供一个方法让其他程序可以获取该对象 步骤(
大数据和AI躺过的坑 阅读(30) |
摘要: 不多说,直接上干货! 代码块包括局部代码快、构造代码块、静态代码块。 代码块,就是一段独立的代码空间。 1、局部代码快 对局部变量的生命周期进行控制。 2、构造代码块 对所有对象进行初始化。 3、静态代码块 对类进行初始化。 1、什么是局部代码快 是在函数中的代码块。 如 2、什么是构造代码块 构造
大数据和AI躺过的坑 阅读(43) |
摘要: 不多说,直接上干货! 父类中的私有内容,子类是否具备? 答:不具备 子类不可直接,但可间接访问父类中的私有内容 这样情况,开发中不所见,但是,面试的时候,必考非常常见。
大数据和AI躺过的坑 阅读(13) |
摘要: 不多说,直接上干货! 通过 牛客网Java刷题知识点之构造函数是什么、一般函数和构造函数什么区别呢、构造函数的重载、构造函数的内存图解 我们对构造函数有了一个比较清楚的认识,当我们在创建对象时,我们会调用构造函数。那么我们在定义和调用构造函数时,需要注意哪些细节呢? 牛客网Java刷题知识点之构造函
大数据和AI躺过的坑 阅读(17) |
摘要: 不多说,直接上干货! 通过 牛客网Java刷题知识点之构造函数是什么、一般函数和构造函数什么区别呢、构造函数的重载、构造函数的内存图解 我们对构造函数有了一个比较清楚的认识,当我们在创建对象时,我们会调用构造函数。那么我们在定义和调用构造函数时,需要注意哪些细节呢? 需要注意的细节:构造函数与set
大数据和AI躺过的坑 阅读(49) |
摘要: 不多说,直接上干货! 构造函数是什么? 构建创造对象时调用的函数。 构造函数是一种特殊的函数,用来在对象实例化时初始化对象的成员变量。 注意: 创建对象都必须要通过构造函数初始化。 构造函数的特点 1)构造函数必须与类的名字相同,并且不能有返回值(返回值也不能为void)。 2)每个类可以有多个构造
大数据和AI躺过的坑 阅读(94) |
摘要: 不多说,直接上干货! 一、对于基本数据类型参数传递代码的运行过程分析: 1、main方法进栈内存,main方法中有基本数据类型变量int x; 2、为main方法中的变量x赋值为3; 3、调用change(x)方法,则change方法进栈; 4、为change方法变量x赋值为4; 5、跳出chang
大数据和AI躺过的坑 阅读(43) |
摘要: 不多说,直接上干货! 插入排序包括直接插入排序、希尔排序。 1、直接插入排序: 如何写成代码: 首先设定插入次数,即循环次数,for(int i=1;i&i++),1个数的那次不用插入。 设定插入数和得到已经排好序列的最后一个数的位数。insertNum和j=i-1。 从最后一个数开始
大数据和AI躺过的坑 阅读(70) |
摘要: 不多说,直接上干货! 其中 1)程序计数器:用于指示当前线程所执行的字节码执行到了第几行,可以理解为当前线程的行号指示器。每个计数器志勇赖记录一个线程的行号,所以它是线程私有的。 2)虚拟机栈:一个线程的每个方法在执行的同时,会创建一个栈帧,栈帧中存储的有:局部变量、操作栈、动态链接、方法出口等。当
大数据和AI躺过的坑 阅读(47) |
摘要: 不多说,直接上干货! TypeConvertDemo.java
大数据和AI躺过的坑 阅读(16) |
摘要: 不多说,直接上干货! byte-short-int-long,方便识记。
大数据和AI躺过的坑 阅读(12) |
摘要: 不多说,直接上干货! 定义类其实就是在定义类中的成员。成员:成员变量&--&属性,成员函数&--&行为。 局部变量在方法内部声明,并且只能在方法内部使用,在外层的方法被调用时被分配内存,请求在方法执行完毕后自动释放内存而消亡,在使用局部变量的时候必须先对其进行初初始化。它是在方法体中定义的变量以及方
大数据和AI躺过的坑 阅读(16) |
摘要: 不多说,直接上干货! 集合框架中包含了大量集合接口、这些接口的实现类和操作它们的算法。 集合容器因为内部的数据结构不同,有多种具体容器。 不断的向上抽取,就形成了集合框架。 Map是一次添加一对元素。Collection是一次添加一个元素。 iterator是迭代获取元素 第一大类:Iterator
大数据和AI躺过的坑 阅读(64) |
摘要: 不多说,直接上干货! 正则表达式是什么? 正则表达式是一种可以用于模式匹配和替换的规范, 一个正则表达式就是由普通的字符(例如字符a到z) 以及特殊字符(元字符) 组成的文字模式, 它用以描述在查找文字主体时需要匹配的一个或多个字符串。 正则表达式作为一个模板, 将某个字符模式与所搜索的字符串进行匹
大数据和AI躺过的坑 阅读(74) |
摘要: 不多说,直接上干货!
大数据和AI躺过的坑 阅读(14) |
摘要: 不多说,直接上干货! 在这个世界不可能存在完美的东西,不管完美的思维有多么缜密,细心,我们都不可能考虑所有的因素,这就是所谓的智者千虑必有一失。同样的道理,计算机的世界也是不完美的,异常情况随时都会发生,我们所需要做的就是避免那些能够避免的异常,处理那些不能避免的异常。这里我将记录如何利用异常还程序
大数据和AI躺过的坑 阅读(18) |
摘要: 不多说,直接上干货! 这种形式的程序段我们将其称之为代码块,所谓代码块就是用大括号({})将多行代码封装在一起,形成一个独立的数据体,用于实现特定的算法。一般来说代码块是不能单独运行的,它必须要有运行主体。在Java中代码块主要分为四种: 普通代码块 普通代码块是我们用得最多的也是最普遍的,它就是在
大数据和AI躺过的坑 阅读(17) |
摘要: 不多说,直接上干货! 可以将一个类的定义放在另一个类的定义内部,这就是内部类。 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二)。 内部类我们从外面看是非常容易理解的,无非就是在一个类的内部在定义一个类。 在这里InnerClass就是内
大数据和AI躺过的坑 阅读(16) |
摘要: 不多说,直接上干货! static修饰的方法我们称之为静态方法,我们通过类名对其进行直接调用。由于它在类加载的时候就存在了,它不依赖于任何实例,所以static方法必须实现,也就是说它不能是抽象方法。
大数据和AI躺过的坑 阅读(18) |
摘要: 不多说,直接上干货! 接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 抽象类与接口是Java语言中对抽象概念进行定义的两种机制,正是由于它们的存在才赋予java强大的面向对象的能力。它们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别。 一、抽象类 我们都知道在面向
大数据和AI躺过的坑 阅读(19) |
摘要: 不多说,直接上干货! 子类可以继承父类的属性和方法,除了那些private的外还有一样是子类继承不了的 构造器。对于构造器而言,它只能够被子类调用,而不能被子类继承。 调用父类的构造方法我们使用super()即可。
大数据和AI躺过的坑 阅读(12) |
摘要: 不多说,直接上干货! 面向对象java的四大特性之抽象 面向对象java的四大特性之封装 封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外
大数据和AI躺过的坑 阅读(27) |
摘要: 不多说,直接上干货! 什么是匿名内部类 匿名内部类就是没有名字的内部类。 不使用关键字class 、 extends 、implements 没有构造函数 必须继承其他类或实现其他接口 正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写。 匿名内部类是直接使用new来生成一个对象的引
大数据和AI躺过的坑 阅读(43) |
摘要: 不多说,直接上干货! 什么是HTTP协议? HTTP隧道是一种利用HTTP或者是HTTPS把多种网络协议封装起来进行通信的技术。因此,HTTP协议扮演了一个打通用于通信的网络协议的管道的包装器的角色,把其他协议的请求掩盖成HTTP的请求就是HTTP隧道。 什么是HTTP隧道? HTTP隧道是一种利用
大数据和AI躺过的坑 阅读(27) |
摘要: 不多说,直接上干货! 什么是cookie? cookie是Web服务器发送给浏览器的一块信息。浏览器会在本地文件中给每一个Web服务器存储cookie。以后浏览器在给特定的Web服务器发请求的时候,同时会发送所有为该服务器存储的cookie。 什么是session? session是指用来在客户端与
大数据和AI躺过的坑 阅读(112) |
摘要: 不多说,直接上干货! JSP的3大常用指令 包含指令(Include directive):用来包含文件和合并文件内容到当前的页面。 页面指令(Page directive):用来定义JSP页面中特定的属性,比如错误页面和缓冲区。 Taglib指令: 用来声明页面中使用的自定义的标签库。 JSP的6
大数据和AI躺过的坑 阅读(18) |
摘要: 不多说,直接上干货! 什么是JSP? JSP是由sun公司倡导,众多公司参与建立的动态网页技术标准,它在HTML中嵌入Java代码段(Scirptlet)和JSP标签,构成JSP网页,接收到用户请求时,服务器就会处理Java代码片段,将生成结果的 HTML页面返回给客户端。 JSP 全称是 Java
大数据和AI躺过的坑 阅读(30) |
摘要: 不多说,直接上干货! Iterator可用来遍历Set和List集合,但是ListIterator只能用来遍历List。 Iterator对集合只能是前向遍历,ListIterator既可以前向也可以后向。 ListIterator实现了Iterator接口,并包含其他的功能,比如:增加元素,替换元
大数据和AI躺过的坑 阅读(25) |
摘要: 不多说,直接上干货! 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。 Java中的Iterator功能比较简单,并且只能单向移动(即只能前向遍历): (1) 使用方法iterator()要求
大数据和AI躺过的坑 阅读(22) |
摘要: 不多说,直接上干货! 总共有两大接口:Collection 和Map ,一个元素集合,一个是键值对集合; 其中List和Set接口继承了Collection接口,一个是有序元素集合,一个是无序元素集合; 而ArrayList和 LinkedList 实现了List接口,HashSet实现了Set接口
大数据和AI躺过的坑 阅读(86) |
摘要: 不多说,直接上干货! 什么是死锁? 死锁可以这样理解,就是互相不让步不放弃,同时需要对方的资源。造成互相不满足资源需求,也不放弃自身已有资源。死锁就这样了。 死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。 死锁是指两个或两个以上的进程在执行过程中,因
大数据和AI躺过的坑 阅读(337) |
摘要: 不多说,直接上干货! 扩展博客 牛客网Java刷题知识点之多线程同步的实现方法有哪些 为何要使用同步? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用,从
大数据和AI躺过的坑 阅读(29) |
摘要: 不多说,直接上干货! 为何要使用同步? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用,从而保证了该变量的唯一性和准确性。 多线程同步的实现方法有 第一种
大数据和AI躺过的坑 阅读(31) |
摘要: 不多说,直接上干货! 1、 新建( new ):新创建了一个线程对象。 2、 可运行( runnable ):线程对象创建后,其他线程(比如 main 线程)调用了该对象 的 start ()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获 取 cpu 的使用权 。 3、 运行( run
大数据和AI躺过的坑 阅读(18) |
摘要: 不多说,直接上干货! 前期博客 牛客网Java刷题知识点之四种不同的方式创建线程 这里很简单 首先,系统通过调用线程类的start()方法来启动一个线程,此时这个线程处于就绪状态,而非运行状态,也就意味着这个线程可以被JVM来调度执行。 然后,在这个调度执行过程中,JVM会通过调用线程类的run()
大数据和AI躺过的坑 阅读(21) |
摘要: 不多说,直接上干货! 有4种方式可以用来创建线程: 第一种:继承Thread类,重写run方法 第二种:实现Runnable接口,并实现该接口的run方法(一般我们在编程的时候推荐用这种) 第三种:实现Callable接口,重写run方法 第四种:应用程序可以使用Executor框架来创建线程池 第
大数据和AI躺过的坑 阅读(93) |
摘要: 不多说,直接上干货! 线程与进程的区别归纳: a.地址空间和其它资源:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。 b.通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。 c.调度和切换:线程
大数据和AI躺过的坑 阅读(32) |
摘要: 不多说,直接上干货! java只支持单继承,这是由于安全性的考虑,如果子类继承的多个父类里面有相同的方法或者属性,子类将不知道具体要继承哪个,而接口可以多实现,是因为接口只定义方法,而没有具体的逻辑实现,多实现也要重新实现方法。 java不支持多继承,也就是一个子类最多继承一个父类,但是可以同时有多
大数据和AI躺过的坑 阅读(16) |
摘要: 不多说,直接上干货! 方法重写的原则: 方法重载的原则: 重写和重载的不同: 方法重写 发生在子类和父类之间,具体实现是子类对父类中一个可访问(Private修饰的方法不可被继承)方法的重写,保证其方法名、参数个数,参数类型不变。 方法重载发生在一个类中,具体表现为多个方法具有相同的方法名,但其参数
大数据和AI躺过的坑 阅读(24) |
摘要: 不多说,直接上干货! Java语言支持的8种基本数据类型是:byteshortintlongfloatdoublebooleanchar 自动装箱是Java编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如:把int转化成Integer,double转化成Double,等等。反之就是自动
大数据和AI躺过的坑 阅读(31) |
摘要: 参考博客 http://www.cnblogs.com/lchzls/p/6711375.html java中String、StringBuffer、StringBuilder是Java编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。 1. 
大数据和AI躺过的坑 阅读(90) |

我要回帖

更多关于 牛客网java笔试题 的文章

 

随机推荐