11 2019 档案
摘要:1、申请方式 stack:由系统自动分配。例如,声明在函数中一个局部变量 int b; 系统自动在栈中为 b 开辟空间 heap:需要程序员自己申请,并指明大小,在 c 中 malloc 函数,对于 Java 需要手动 new Object()的形式开辟 2、申请后系统的响应 stack:只要栈的剩
阅读全文
摘要:a):Java内存模型(方法区、本地方法栈、虚拟机栈、程序计数器、堆) Java虚拟机将其管辖的内存大致分为三个逻辑部分:方法区(Method Area)、Java栈和Java堆 1、方法区是静态分配的,编译器变量绑定在某个存储位置上,而且这些绑定不会在运行时改变。 常数池,源代码中的命名常量,St
阅读全文
摘要:静态代理通常只代理一个类,动态代理是代理一个接口下的多个实现类 静态代理事先要知道代理的是什么 ,而动态代理不知道要代理什么东西,只有在运行时才知道。 动态代理是实现JDK里面的InvocationHandler接口里面的invoke方法,但注意的是代理的是接口,也就是说你的业务类必须要实现接口,通
阅读全文
摘要:Linux的简介 Linux系统作为服务器操作系统,完成项目的部署;比较方便搭建集群环境 Linux目录结构 Linux命令 文件命令: mkdir:创建目录 mkdir目录名(可以是相对路径也可以是绝对路径) -p:可以创建父级目录;如果父级目录已经存在,也不会报错 mkdir -p a/b/c/
阅读全文
摘要:Jedis的使用? Jedis就是redis提供的Java客户端工具(在Java代码中,直接通过jedis就可以操作redis数据库) 加载jedis依赖 连接redis服务器(创建jedis对象;相当于jdbc的connection、mybatis的sqlsession) 通过jedis对象中的方
阅读全文
摘要:1、redis的认识? redis(Remote Dictionary Server远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库(非关系型数据库),并提供了多种语言的API。 非关系型数据库的特点: 1):数据结构比较简单(通过
阅读全文
摘要:线程通信的方式: 1、共享变量 线程间通信可以通过发送信号,发送信号的一个简单方式是在共享对象的变量里设置信号值。线程A在一个同步块里设置boolean型成员变量hasDataToProcess为true,线程B也在同步代码块里读取hasDataToProcess这个成员变量。这个简单的例子使用了一
阅读全文
摘要:1、死锁的定义 所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进 2、死锁产生的必要条件 互斥条件:线程要求对所分配的资源(如打印机)进行排他性控制,即在一段时间内某资源仅为一个线程所占有。此时若有线程请求该资源,则请求线程只能等待。 不剥夺条件:线
阅读全文
摘要:import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * 同一个类中的2个方法都加了同步锁,多个线程能同时访问同一个类中的两个方法吗? * 这个问题需要考虑到Lock与
阅读全文
摘要:public class ThreadCommunication { /** * 三个线程a、b、c并发运行,b,c需要a线程的数据怎么实现 * * 根据问题的描述,通过三个线程,ThreadA ThreadB ThreadC * ThreadA用于初始化数据num,只有num初始化完成之后再让Th
阅读全文
摘要:import java.util.concurrent.Semaphore; /** * 如何控制某个方法允许并发访问线程的个数 * permits the initial number of permits available. This value may be negative, * in w
阅读全文
摘要:class ConcurrentThread { /** * 分析线程并发访问代码解释原因 * volatile关键字: * 1):保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的 * 2):禁止进行指令重排序 * volatile本质是告诉
阅读全文
摘要:import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.concurrent.*; public class ServalMethod { /** * 有返回值的线程 */
阅读全文
摘要:1、启动一个线程是调用run()方法还是start()方法? 启动一个线程是调用start()方法,是线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行,这并不意味着线程就会立即执行 2、请说出同步线程及线程调度相关的方法? wait():是一个线程等待(阻塞bolcked)状态
阅读全文
摘要:1、JVM垃圾回收机制和常见算法 理论上来讲Sun公司还制定了垃圾回收规则而不局限于其实现算法,因此不同厂商生产的虚拟机采用的算法也不尽相同。 GC(Garbage Collertor)在回收对象前首先必须发现那些无用的对象,如何去发现定位这些无用的对象?常用的搜索算法如下: 1)引用计数器算法(废
阅读全文
摘要:一、多线程基础知识--传统线程机制的回顾 1、传统使用类Thread和接口Runnable实现 1):在Thread子类覆盖的run方法中编写运行代码 2):在传递给Thread对象的Runnable对象的run方法中编写代码 3):总结 查看Thread类的run()方法的源代码,可以看到其实这两
阅读全文
摘要:13、Collection和Map的集成体系? 14、Map 中的 key 和 value 可以为 null 么? HashMap 对象的 key、value 值均可为 null。 HahTable 对象的 key、value 值均不可为 null。 且两者的的 key 值均不能重复,若添加 key
阅读全文
摘要:8、数组和链表简介 在计算机中要对给定的数据集进行若干处理,首要任务是把数据集中的一部分(当数据非常大时,可能只能一部分一部分地读取数据到内存中来处理)或全部存储到内存中,然后在对内存中的数据进行各种处理。 例如:对如数据集S{1,2,3,4,5,6},要求S中元素的和,首先要把数据存储到内存中,然
阅读全文
摘要:5、List的三个子类的特点 ArrayList底层结构是数组,底层查询块,增删慢。 LinkedList底层结构是链表型的,增删快,查询慢。 vector底层结构是数组,线程安全得,增删和查询都慢。 6、List和Map、Set的区别? 1)结构特点 : List和Set是存储单列数据的集合,Ma
阅读全文
摘要:1、集合的安全性问题 ArrayList、HashSet、HashMap不是线程安全的 Vector、HashTable是线程安全的 区别就是源码中各自核心方法是否添加了synchronized关键字 Collections工具类提供了相关的API,可以让上面那三个不安全的集合变为安全的 Colll
阅读全文
摘要:1、Java的基本数据类型都有哪些各占有几个字节? 2、String是基本数据类型吗? String是引用类型,底层使用char数组实现的。 3、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1有错吗; 前者不正确,后者正确。对于short s1
阅读全文
摘要:1、Math.round(11.5)等于多少?Math.round(-11.5)又等于多少? Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11.四舍五入的原理是在参数上加0.5然后进行取整。 2、switch是否能作用在byte上,是否能作用在lon
阅读全文
摘要:1、Java中异常分为哪些种类? 1)按照异常需要处理的时机分为编译时异常(也叫强制性异常)也叫CheckedException和运行时异常(也叫非强制性异常)也叫RuntimeException。只有Java语言提供了Checked异常,Java认为Checked异常都是可以被处理的异常,所以Ja
阅读全文
摘要:靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的办法。
阅读全文
摘要:11、抽象的(abstract)方法是否同时是静态的(static),是否可同时是本地方法(native),是否可同时被synchronized? 都不能。 抽象方法需要子类重写,而静态的方法是无法被重写的,因此二者是矛盾的。 本地方法是由本地代码(如C代码)实现的方法,而抽象方法是没有实现的,也是
阅读全文
摘要:6、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 是值传递。Java语言的方法调用支持参数的值传递。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用。对象的属性可以在被调用过程中被改变,但对对象引用的改
阅读全文
摘要:二、JavaSE语法(上) 1、Java 有没有 goto 语句? goto 是 Java 中的保留字,在目前版本的 Java 中没有使用。根据 James Gosling(Java 之父)编写的《The Java Programming Language》一书的附录中给出了一个 Java 关键字列
阅读全文
摘要:一、Java面向对象 面向对象都有哪些特性以及你对这些特性的理解 1)继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段。Java中只有单继承
阅读全文

浙公网安备 33010602011771号