`
464772913
  • 浏览: 25459 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论
文章列表
一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池等待队列中)。 取到锁后,他就开始执行同步代码(被synchronized修饰的代码);线程执行完同步代码后马上就把锁还给同步对象,其他在锁池中等待的某个线程就可以拿到锁执行同步代码了。这样就保证了同步代码在统一时刻只有一个线程在执行。 众所周知,在Java多线程编程中,一个非常重要的方面就是线程的同步问题。关于线程的同步,一般有以下解决方法:1. 在需要同步的方法 ...
  Http是一个无状态协议,同一个会话的连续两个请求互相不了解,他们由最新实例化的环境进行解析,除了应用本身可能已经存储在全局对象中的所有信息外,该环境不保存与会话有关的任何信息。 自己的理解,在asp.net里:每次提交服务器的页面没有任何关系,每次记录在页面的信息下次提交是记不住的,(除了应用本身可能已经存储在全局对象中的所有信息外)在.net里实际就是ViewState,ViewState是asp.net中保存页面信息的基本单位,应用时就是保存在控件隐藏域等中的数据 协议的状态是指下一次传输可以“记住”这次传输信息的能力.     http是不会为了下一次连接而维护这次连接 ...
Java中有两种实现多线程的方式以及两种方式之间的区别 看到一个面试题.问两种实现多线程的方法.没事去网上找了找答案. 网上流传很广的是一个网上售票系统讲解.转发过来.已经不知道原文到底是出自哪里了. Java中有两种实现多线程的方式。一是直接继承Thread类,二是实现Runnable接口。那么这两种实现多线程的方式在应用上有什么区别呢?         为了回答这个问题,我们可以通过编写一段代码来进行分析。我们用代码来模拟铁路售票系统,实现通过四个售票点发售某日某次列车的100张车票,一个售票点用一个线程表示。         我们首先这样编写这个程序:  Java代码  ...
Java虚拟机JVM学习05 类加载器的父委托机制   类加载器   类加载器用来把类加载到Java虚拟机中。   类加载器的类型   有两种类型的类加载器:   1.JVM自带的加载器:     根类加载器(Bootstrap)     扩展类加载器(Extension)     系统类加载器(System)   2.用户自定义的类加载器:     java.lang.ClassLoader的子类,用户可以定制类的加载方式。   JVM自带的加载器   Java虚拟机自带了以下几种加载器。   1.根(Bootstrap)类加载器:   该加载器没有父加载器 ...
反射机制最重要的部分是准许你检查类的结构。java.lang.reflect包中的三个类Field、Method、Constructor相应的描述了一个类的字段、方法、构造函数。使用这些类的时候必须要遵循下面步骤: 第一步是获得你想操作的类的 java.lang.Class 对象。下面就是获得一个 Class 对象的方法之一:Class c = Class.forName("java.lang.String"); //这条语句得到一个 String 类的类对象。还有另一种方法:Class c = int.class;
Java 串行化技术可以使你将一个对象的状态写入一个Byte 流里,并且可以从其它地方把该Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的串行化机制是RMI、EJB等技术的技术基础。用途:利用对象的串行化实现保存应用程序的当前工作状态,下次再启动的时候将自动地恢复到上次执行的状态。   序列化就是一种用来处理对象流的机制,
1.什么是super?什么是this? super关键字表示超(父)类的意思。this变量代表对象本身。 2
移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。  在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就是移动66次和移动2次得到的结果相同。  三种移位运算符的移动规则和使用如下所示:  <<运算规则:按二进制形式把所 ...
JVM 原理解释     JVM 全称是 Java Virtual Machine ,Java 虚拟机,这个 JVM 你是看不到的,它存在内存中。我们知道计算机的基本构成是:运算器、控制器、存储器、输入和输出设备,那这个 JVM 也是有这成套的元素,运算器是当然是交给硬件 CPU 还处理了,只是为了适应“一次编译,随处运行”的情况,需要做一个翻译动作,于是就用了JVM 自己的命令集,JVM 的命令集则是可以到处运行的,因为 JVM 做了翻译,根据不同的CPU ,翻译成不同的机器语言。   JVM 是一个内存中的虚拟机,那它的存储就是内存了,我们写的所有类、常量、变量、方法都在内 ...
对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1.         什么是TCP/IP、UDP?2.         Socket在哪里呢?3.         Socket是什么呢?4.         你会使用它们吗?什么是TCP/IP、UDP?          TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标
spring IoC和AOP的原理 (2012-04-07 11:54:33) 转载▼ 标签: spring ioc aop   下面为spring的主要原理: IoC(Inversion of Control):IoC就是应用本身不依赖对象的创建和维护而是交给外部容器(这里为spring),这要就把应用和对象之间解耦,控制权交给了外部容器。即Don't call me ,I'll call you!所以IoC也称DI(依赖注入)对象的创建和维护依赖于外部容器. class UserService{ private UserDao userDao ...
 面向切面编程(AOP是Aspect Oriented Program的首字母缩写) ,我们知道,面向对象的特点是继承、多态和封装。而封装就要求将功能分散到不同的对象中去,这在软件设计中往往称为职责分配。实际上也就是说,让不同的类设计不 ...
Struts1和Struts2核心控制器的执行原理 Struts1 1、初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web、xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config、xml)的配置信息,为struts中不同的模块初始化相应的对象。 2、发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器。
js中继承可以分为两种:对象冒充和原型链方式   一、对象冒充包括三种:临时属性方式、call()及apply()方式1.临时属性方式 代码如下: function Person(name){ this.name = name; this.say = function(){ alert('My name is '+this.name); ...
简单介绍: 创建线程有两种方式:继承Thread或实现Runnable。Thread实现了Runnable接口,提供了一个空的run()方法,所以不论是继承Thread还是实现Runnable,都要有自己的run()方法。    一个线程创建后就存在,调用start()方法就开始运行(执行run()方法),调用wait进入等待或调用sleep进入休眠期,顺利运行完毕或休眠被中断或运行过程中出现异常而退出。wait和sleep比较:   sleep 方法属于Thread类中方法,表示让一个线程进入睡眠状态,等待一定的时间之后,自动醒来进入到可运行状态,不会马上进入运行状态,因为线程调度机制恢 ...
Global site tag (gtag.js) - Google Analytics