`
maoyi606
  • 浏览: 36102 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多
1.进程和线程的区别
进程是操作系统结构的基础;是一个正在执行的程序;计算机中正在运行的程序实例;可以分配给处理器并由处理器执行的一个实体;由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元。
线程(thread, 台湾称 执行绪)是"进程"中某个单一顺序的控制流。也被称为轻量进程(lightweight processes)。计算机科学术语,指运行中的程序的调度单位。
线程与进程的区别可以归纳为以下几点:   
1)地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。   
2)通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。   
3)调度和切换:线程上下文切换比进程上下文切换要快得多。   
4)在多线程OS中,进程不是一个可执行的实体。

2.wait和sleep
sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

3.HashMap和HashTable的区别HashMap 是Hashtable 的轻量级实现(非线程安全的实现),他们都完成了Map 接口,主要
区别在于HashMap 允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。
HashMap 允许将null 作为一个entry 的key 或者value,而Hashtable 不允许。
HashMap 把Hashtable 的contains 方法去掉了,改成containsvalue 和containsKey。因为contains
方法容易让人引起误解。
Hashtable 继承自Dictionary 类,而HashMap 是Java1.2 引进的Map interface 的一个实现。
最大的不同是,Hashtable 的方法是Synchronize 的,而HashMap 不是,在多个线程访问
Hashtable 时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
Hashtable 和HashMap 采用的hash/rehash 算法都大概一样,所以性能不会有很大的差异。

4.java内存回收机制,Full-GC,Monitor-GC;


5.TCP和UDP的区别 区别           TCP         UDP
是否连接      面向连接       面向非连接
传输可靠性    可靠           不可靠
应用场合      传输大量数据   少量数据
速度          慢             快

6.设计模式有哪些原则
单一职责:就一个类而言,应该只有一个引起它变化的原因
开放-封闭原则:软件实体(类、模块、函数等等)应该可以扩展,但是不可以修改。对扩展是开放的,对修改是封闭的。
依赖倒转原则:抽象不应该依赖于细节,细节应该依赖于抽象。要针对接口编程,不要对实现编程。
里氏代换原则:子类可以替换父类
迪米特法则:类之间的耦合越弱,越有利于复用,一个处于在弱耦合的类被修改,不会对有关系的类造成波及。
合成/聚合复用原则:
合成:强拥有关系,体现了严格的部分和整体关系,部分和整体的生命周期是一样的
聚合:弱拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分
   尽量使用合成/聚合,尽量不使用类继承。优先使用对象的合成/聚合有助于保持每个类被封装,并且集中在单个任务上,这样类和类的继承层次会保持较小规模,并且不太可能增长成为不可控制的庞然大物。

7.Hibernate级联与缓存
Hibernate的缓存包括Session的缓存和SessionFactory的缓存,其中SessionFactory的缓存又可以分为两类:内置缓存和外置缓存。

8.Spring的DI与AOP

9.Struts1与Struts2的区别
struts1和struts2的区别其实并不是太大,两者的区别:
Action 类:
  ◆Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。
  ◆Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现 常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。
  线程模式:
  ◆Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。
  ◆Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)
  Servlet 依赖:
  ◆Struts1 Action 依赖于Servlet API ,因为当一个Action被调用时HttpServletRequest 和 HttpServletResponse 被传递给execute方法。
  ◆Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2 Action仍然可以访问初始的request和response。但是,其他的元素减少或者消除了直接访问HttpServetRequest 和 HttpServletResponse的必要性。
  可测性:
  ◆测试Struts1 Action的一个主要问题是execute方法暴露了servlet API(这使得测试要依赖于容器)。一个第三方扩展--Struts TestCase--提供了一套Struts1的模拟对象(来进行测试)。
  ◆Struts 2 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”支持也使测试更容易。
  捕获输入:
  ◆Struts1 使用ActionForm对象捕获输入。所有的ActionForm必须继承一个基类。因为其他JavaBean不能用作ActionForm,开发者经常创建多余的类捕获输入。动态Bean(DynaBeans)可以作为创建传统ActionForm的选择,但是,开发者可能是在重新描述(创建)已经存在的JavaBean(仍然会导致有冗余的javabean)。
  ◆ Struts 2直接使用Action属性作为输入属性,消除了对第二个输入对象的需求。输入属性可能是有自己(子)属性的rich对象类型。Action属性能够通过web页面上的taglibs访问。Struts2也支持ActionForm模式。rich对象类型,包括业务对象,能够用作输入/输出对象。这种ModelDriven 特性简化了taglib对POJO输入对象的引用。
  表达式语言:
  ◆Struts1 整合了JSTL,因此使用JSTL EL。这种EL有基本对象图遍历,但是对集合和索引属性的支持很弱。
  ◆Struts2可以使用JSTL,但是也支持一个更强大和灵活的表达式语言--"Object Graph Notation Language" (OGNL).
  绑定值到页面(view):
  ◆ Struts 1使用标准JSP机制把对象绑定到页面中来访问。
  ◆Struts 2 使用 "ValueStack"技术,使taglib能够访问值而不需要把你的页面(view)和对象绑定起来。ValueStack策略允许通过一系列名称相同但类型不同的属性重用页面(view)。
  类型转换:
  ◆Struts 1 ActionForm 属性通常都是String类型。Struts1使用Commons-Beanutils进行类型转换。每个类一个转换器,对每一个实例来说是不可配置的。
  ◆Struts2 使用OGNL进行类型转换。提供基本和常用对象的转换器。
  校验:
  ◆Struts 1支持在ActionForm的validate方法中手动校验,或者通过Commons Validator的扩展来校验。同一个类可以有不同的校验内容,但不能校验子对象。
  ◆Struts2支持通过validate方法和XWork校验框架来进行校验。XWork校验框架使用为属性类类型定义的校验和内容校验,来支持chain校验子属性
  Action执行的控制:
  ◆Struts1支持每一个模块有单独的Request Processors(生命周期),但是模块中的所有Action必须共享相同的生命周期。
  ◆Struts2支持通过拦截器堆栈(Interceptor Stacks)为每一个Action创建不同的生命周期。堆栈能够根据需要和不同的Action一起使用。

10.性能优化
11.java分页


===========================================
511
1.floor与cell
CEIL(n)函数:取大于等于数值n的最小整数
cell(-11.5) -11
FLOOR(n)函数:取小于等于数值n的最大整数
floor(11.5)  11

分享到:
评论

相关推荐

    VHDL-RS422.rar_RS422 VHDL_RS422通讯程序_VHDL-RS422_rs422_rs422程序

    RS422是一种广泛应用于工业控制、远程通信和数据采集系统的串行通信接口标准,全称为“Recommended Standard 422”。它提供了全双工、平衡传输的方式,具有较高的抗噪声干扰能力,允许数据传输距离远达1200米,并能...

    422_to_444.zip_422转444_yuv422 to yuv444_yuv422 yuv444 fpga_yuv42

    标题中的“422_to_444.zip_422转444_yuv422 to yuv444_yuv422 yuv444 fpga_yuv42”指的是一个关于将YUV422颜色空间转换为YUV444颜色空间的FPGA实现项目。这个压缩包可能包含了相关的文档和源代码,帮助开发者理解并...

    YUV422转jpeg

    在数字图像处理领域,YUV422是一种广泛使用的颜色空间格式,特别是在视频编码和传输中,因为它可以有效地减少带宽需求。JPEG(Joint Photographic Experts Group)则是一种常见的有损图像压缩标准,用于存储和传输...

    RS422驱动.rar

    RS422驱动rar压缩包包含了用于Windows操作系统(如Win7和Win10)的RS422串口驱动程序,特别适用于解决设备管理器中串口显示为带有感叹号的错误状态。RS422是一种广泛应用于长距离通信和工业控制领域的串行通信接口...

    串口422接口定义说明书

    **串口422接口详解** RS-422接口,全称为TIA/EIA-422-A标准,是一种单机发送、多机接收的单向、平衡传输规范。这个标准定义了通信接口的电气特性,使得在通信工业领域广泛应用。在RS-422的基础上,EIA于1983年制定...

    RS422电路设计

    RS422是一种广泛应用于长距离、高数据传输速率通信的接口标准,全称为“推荐标准422”。它的设计目标是提供一个可靠的、抗噪声干扰的串行通信链路,通常用于工业环境或者需要远距离传输数据的场合。RS422标准允许...

    rs422驱动,亲测可用。

    RS422是一种串行通信接口标准,全称为“Recommended Standard 422”,它提供全双工、平衡传输方式,适用于长距离、抗干扰性强的通信环境。在这个标题和描述中,提到的是一个适用于RS422接口的驱动程序,用户已经验证...

    RS422接线图

    ### RS422接线图知识点详解 #### 一、RS-422技术概述 RS-422标准是一种用于串行数据通信的电气标准,由电子工业联盟(EIA)发布,常用于计算机系统与远程终端之间的数据传输。相较于其他串行通信标准如RS-232,RS-...

    RS422串口C驱动源代码

    RS422串口通信是计算机通信中常见的一种方式,尤其在远程通信和工业控制领域广泛应用。本资源提供的是一个基于RS422串口的C驱动源代码,专为VC(Visual C++)开发环境设计,对于进行RS422串口编程的开发者来说是一个...

    rs422 串口测试代码

    本主题聚焦于"rs422 串口测试代码",这是一段用于在ARM Linux环境下测试RS422、RS232和RS485协议的数据收发的应用代码。这些接口标准广泛应用于长距离、多点通信和噪声环境中的通信。 首先,我们需要了解RS422、...

    RS232与RS422的转换原理和接法

    RS232和RS422是两种常见的串行通信接口标准,广泛应用于视频服务器、录像机、切换台等设备的通信控制中。RS232标准自1962年发布以来,一直是PC机和通信工业中最广泛使用的串行接口。RS422和RS485则是在RS232的基础上...

    YCbCr444_to_YCbCr422_NTSC_verilog_444转422_PAL_

    本主题聚焦于从YCbCr444到YCbCr422的转换,这是两种广泛使用的色彩空间,主要应用于PAL和NTSC电视标准。在Verilog硬件描述语言中实现这种转换可以为视频处理系统提供高效的硬件解决方案。 首先,我们来理解YCbCr...

    高可靠性隔离型RS422接口的设计方案

    【高可靠性隔离型RS422接口的设计方案】 在现代工业测控系统中,数据通信是不可或缺的一部分。由于无线通信的不可靠性,有线通信成为首选,特别是串行数据总线方式,如RS422接口,因其抗干扰性强、通信距离远,常...

    RS422串口通信示例(C语言实现)

    RS422标准是一种广泛使用的串行通信接口,它提供了全双工、差分信号传输,能够提高信号质量和传输距离。本示例将探讨如何使用C语言来实现RS422串口通信。 RS422标准全称为“EIA/TIA-422-A”,由电子工业联盟...

    rs422转rs485接口转换器原理图

    rs422和rs485是两种常见的串行通信协议,它们主要被应用在工业领域中,用于实现设备之间的长距离通信。rs422和rs485的主要区别在于其工作模式:rs422是全双工模式,可以同时进行数据的发送和接收,而rs485则采用...

    基于SPI总线技术的同步422接口设计

    基于SPI总线技术的同步422接口设计 1. SPI总线技术概述 SPI(Serial Peripheral Interface)是一种同步串行通信总线技术,广泛应用于嵌入式系统、微控制器和外围设备之间的数据交换。SPI总线技术的主要特点是高速...

    基于Qt+C++开发电机监控软件+rs422串口通信+sqlite数据库+qcustomplot画图+自动生成WORD报告+源码

    基于Qt+C++开发电机监控软件+rs422串口通信+sqlite数据库+qcustomplot画图+自动生成WORD报告+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于Qt+C++开发...

    FX3u-422-BD通讯模块驱动

    FX3u-422-BD通讯模块是三菱电机推出的一款用于FX3U系列PLC的串行通信扩展板,它使得PLC能够通过RS-422接口与其他设备进行数据交换。在本文中,我们将深入探讨这个通讯模块的功能、应用、配置方法以及驱动安装步骤。 ...

    uart_rs422_linux串口_uart_

    在Linux系统中,UART接口被用作串口通信,通常用于RS-232、RS-485和RS-422标准。本程序的重点是针对Linux下的UART串口驱动测试,特别是针对高速率的数据采集和读取。 首先,我们要理解UART的工作原理。UART通过串行...

    RS422_receiver.rar_UART RS422_rs422_rs422 verilog_rs422接收verilo

    在本项目中,我们关注的是RS422接收器,一个基于Verilog硬件描述语言实现的逻辑设计。RS422是一种增强型的UART标准,提供了更远的传输距离和更高的抗干扰能力,常用于工业应用。 UART通信的基本原理是通过串行数据...

Global site tag (gtag.js) - Google Analytics