`
langlanglanglang
  • 浏览: 31679 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
文章列表
物理层:为它的上一层提供物理链接,以及规定通信节点之间的机械和电气等特性,如规定的电缆和接头的类型,传送的电压。在这一层,传送的都是bit流。本层的典型设备是集线器。 简单的讲就是规定通信节点的机械和电气特性。 数据链路层:负责在相邻节点的线路上,无差错地传送以帧为单位的数据。每一帧包括一定的数据和一些必要的控制信息。并负责建立维持和释放数据链路的连接。简单地讲就是无差错地传送帧。 网络层:网络层将数据帧组成数据包,包中封装有网络层的包头——源主机和目标主机的网络地址,网络层负责选择合适的路由。 传输层: 传输层:为两个端系统的会话层提供建立维护和取消传输连接的功能,有可靠传输和不可靠传输之分。 ...
stack 和 heep 都是内存的一部分 stack 空间小,速度比较快, 用来放对象的引用 heep 大,一般所有创建的对象都放在这里。 栈(stack):是一个先进后出的数据结构,通常用于保存方法(函数)中的参数,局部变量. 在java中,所有基本类型和引用类型都在栈中存储.栈中数据的生存空间一般在当前scopes内(就是由{...}括起来的区域). 堆(heap):是一个可动态申请的内存空间(其记录空闲内存空间的链表由操作系统维护),C中的malloc语句所产生的内存空间就在堆中. 在java中,所有使用new xxx()构造出来的对象都在堆中存储,当垃圾回收器检测到某对象未被引用,则 ...
final:如果一个变量或方法参数被final修饰,就表示它只能被赋值一次,但是JAVA虚拟机为变量设定的默认值不记作一次赋值。      final的用途             1、可用来定义变量,包括静态变量和非静态变量。         2 ...
java标识符以字母下划线或美元符号开头,由字母数字下划线和美元符号组成,区分大小写,长度没有限制,中间不允许有空格,也不允许出现以上所列其他符号。在程序中,标识符用来做变量名方法名常量名类名。

jvm

为什么要了解jvm: jvm,即java virtual machine,是在计算机上再虚拟一个计算机。众所周知,计算机分为运算器、控制器、存储器、输入输出设备,jvm也具备这些元素。运算器自然是cpu来处理,只是为了适应“一次编译,随处运行”,jvm有自己的命令集,跟汇编命令差不多,根据不同cpu翻译成不同机器语言。这里的存储器是指内存,因为虚拟机是运行在内存上的。
   接口是构造软件松耦合的重要法宝。在java中,接口被设计为只描述类应该做什么,而不涉及任何具体的实现细节。因此,它不能实例化,不能包含构造方法也不能包含实例变量。    抽象类的合理使用可以提高软件的开发效率和代码的重用度。它和接口一样位于抽象层,可以包含抽象方法,但是它可以包含部分实现。    它们二者的不同点,主要体现在两点。    接口可以多继承,抽象类只能单继承。    接口不包含任何具体实现,但是抽象类可以有部分实现。在编码上的表现就是接口不能实例化,没有任何构造函数和实例变量。抽象类可以自己实现了的方法和构造函数以及实例变量。     abstract class和interf ...
速度和效率:String>StringBuilder>StringBuffer;     String是不可变(immutable)对象,不可改变其内容,每次改变时都是创建一个新的Stringbuilder对象,在Stringbuilder上对旧String进行改变后,利用toString()方法转化为String,然后返回这个新对象引用,原来的对象没有任何改变,等于是新创建了个String对象。      StringBuilder和StringBuffer是可变对象。StringBuffer是线程安全的,所以效率要低些。     在三者的选择上,如果要频繁更改String内容,如 ...
   一、数组的特点。    我们说数组的特点,主要是讲针对容器而言。数组有三个主要优点,效率、类型、可以保存基本数据类型。    效率:因为数组是线性结构,所以存取速度很快。不足是,数组的生命周期和大小必须确定的,不够灵活。容器恰恰弥补了这个不足,但是这也是以牺牲效率为代价的。容器大小可以通过创建新实例,把旧实例复制到新实例来实现空间的动态分配,不过,恰恰是这样降低了效率。    类型:数组的类型是确定,这有利于编译检查。但是自从容器实现泛型后,数组便不存在这个优势了。编译检查避免了所有错误和异常都出现在运行时,这不仅使代码更优雅,同时也方便调试。    保存基本数据类型:之前容器并不可以持 ...
    软件发展过程大致出现了三种软件开发模式。     无结构的开发模式。软件是众多过程的集合。     模块结构:又称模块接口化开发。把软件分解为若干模块,模块间通过定义好的接口进行通信。每个模块的划分按照高内聚性和低耦合度两个原则。相对于无结构开发,模块开发的软件结构清晰,易于维护和理解,大大加快了开发的效率。不足是,往往模块接口设计不能完全满足最后的各模块通信的要求。为了实现一个目标,我们往往要做很多决定,往往一个决定基于上一个决定,每个决定的正确与否关系到后面一系列决定,一个错误的决定往往会导出后面一系列错误的决定。模块接口化开发,各模块齐头并进,很难找到一个可靠的决定顺序。     ...
  并发性、共享性、虚拟技术、异步性。       并发性:引入进程和线程。    引入进程,进程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成,    引入线程,由于进程拥有自己的资源,所以调度开销很大。 所以提出了线程,一个进程里往往包含了若干个线程,线程比进程小,基本上不拥有什么系统资源,所以通常把进程作为一个分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位,这样可以大大减少调度开销。近来的操作系统都引入了线程。     共享有互斥共享和同时共享。     虚拟技术:主要是指时分复用技术和时空复用技术.    时分复用:虚拟处理机技术, ...
   os 是用户和计算机硬件资源的接口,作为计算机系统资源的管理者,实现了对计算机系统资源的抽象。     os发展过程中出现单道批处理系统、多道批处理系统、分时系统,实时系统。     多道批处理系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,按一定算法从后备队列中选择若干个作业调入内存,使他们共享cpu和系统中的资源。相比单道批处理系统,提高了系统资源的利用率和系统的吞吐量。     提高cpu利用率:主要解决了cpu高速率和io设备低速率的冲突。在程序发出io请求后必须在其io完成后cpu才能继续运行,这样就出现了cpu空闲,尤其是io设备速度很低,利用c ...
[转]Java栈与堆 ---------------------------------------------------------------------- 程序执行的过程 程序从硬盘载入的内存->有四个内存区供程序使用 heap(堆 ),stack(栈),data segment,code segment heap堆:用来存放new出来的东西 stack栈:局部变量。 data segment:静态变量,字符串常量。 code segment:存放代码 ------------------------------------------------------ ...
1.public protected default private 组 位置            private 默认 protected   public 同一个类               是 是 是     是 同一个包内的类    否 是 是     是 不同包内的子类    否 否 是     是 不同包并且不是子类    否 否 否     是 public 访问权限最高,不论是不是同一个包或是否是子类 都可以访问 protected 其次只有是不同包且不是子类的无法访问外,其它均可 默认级别 次之,要求只能是同一个包中的类才能访问 private 只能是 ...
Date类与其它数据类型的相互转换       整型和Date类之间并不存在直接的对应关系,只是你可以使用int型为分别表示年、月、日、时、分、秒,这样就在两者之间建立了一个对应关系,在作这种转换时,你可以使用Date类构造函数的三种形式: Date(int year, int month, int date):以int型表示年、月、日 Date(int year, int month, int date, int hrs, int min):以int型表示年、月、日、时、分 Date(int year, int month, int date, int hrs, int min, in ...
1、final 变量:被final修饰的变量表示常量。值给定后,就不可改变。 2、final 方法:可以被继承但不可以被重载修改,好处是能够锁定方法,不被其他类修改它的意义与实现,另外编译时,能将final方法转为内嵌机制,大大提高效率。 3、final 类:不能被继承,故没有子类。当类的实现细节不容变更,不需扩展,且不需要子类,可设计为final类。final类的方法默认为final。 4、final 参数:只可使用不可改变。 5、常使用static final组合。
Global site tag (gtag.js) - Google Analytics