- 浏览: 55590 次
- 性别:
- 来自: 杭州
最新评论
文章列表
单链表面试题之-链表反转
- 博客分类:
- java
单链表反转
--------------------------------------------
带头结点的单链表实现
public class LinkedList<T> {
private Entry<T> head, tail; //头指针,尾指针
private int size; //通过一个变量记录链表长度
public LinkedList() {
//生成一个头结点,让头指针和尾指针都指向它
head = tail = new Entry<T>(null);
size = 0;
}
public int size() {
return size;
}
pub ...
windows中待机、休眠、睡眠、注销解释
- 博客分类:
- 名称解释
待机(Standby):将系统切换到该模式后,除了内存,电脑其他设备的供电都将中断,只有内存依靠电力维持着其中的数据(因为内存是易失性的,只要断电,数据就没有了)。这样当希望恢复的时候,就可以直接恢复到待机前状态。这种模式并非完全不耗电,因此如果在待机状态下供电发生异常(例如停电),那么下一次就只能重新开机,所以待机前未保存的数据都会丢失。但这种模式的恢复速度是最快的,一般五秒之内就可以恢复。
休眠(Hibernate):将系统切换到该模式后,系统会自动将内存中的数据全部转存到硬盘上一个休眠文件中,然后切断对所有设备的供电。这样当恢复的时候,系统会从硬盘上将休眠文件的内容直接读入内存,并恢复到 ...
public class ClassLoaderTest
{
/**
Java的类加载器采用了一种父委托机制来加载需要的类.每个ClassLoader都关联一个父ClassLoader,
除了BootstrapClassLoader(启动类加载器)外.Java默认实现了三个类加载器:
BootstrapClassLoader(最顶层的类加载器),ExtClassLoader(扩展类加载器),AppClassLoader(系统类加载器),
其中ExtClassLoader的父加载器是BootstrapClassLoader ...
private static void getDataFromURL() throws MalformedURLException, IOException
{
// System.getProperties().put("http.proxyHost", "someProxyURL");
// System.getProperties().put("http.proxyPort", "someProxyPort");
URL url = n ...
// i = i++ 计算过程
// temp = i;
// i = i+1;
// i = temp;
// i = ++i 计算过程
// i = i+1;
// temp = i;
// i = temp;
int x = 0;
//输出5个0
for (int i = 0; i < 5; i++)
{
x = x++;
System.out.println(x);
}
x = 10;
x = x++ + x++;
// temp1 = x; x= x+1; temp2=x ...
/**
运行结果:
A's constructor
com.polymorphism.C
com.polymorphism.C
Class A
null
----------------------
B's constructor
com.polymorphism.C
com.polymorphism.C
Class B
null
----------------------
C's constructor
com.polymorphism.C
com.polymorphism.C
Class C
Class C
---------------------- ...
一般以下两种情况会触发sealing安全异常
1)当被密封(seal)的package已经被加载,此时再试图去加载其他jar中的同名package,就会触发sealing violation异常
2)当没有被密封的package已经被加载,此时再去加载其他jar中同名且被密封的package,也会触发sealing violation异常
假设某次发布的jar(v1.jar)中包含NumerUtils和StringUtils这俩工具类
package com.seal.util;
import java.text.DecimalFormat;
public class Numbe ...
/**
hashmap底层维护着一个entry数组,每个数组索引指向的是一个entry链表.entry是一个key和value对,
entry内部还保存着一个next属性,用于指向下一个entry,如果entry后面没有其他的entry,则next=null
hashmap根据要存储entry中key的hashCode值,调用内部的hash()算法,返回一个hash值,然后跟
entry数组容量(2的倍数)capacity-1做按位与运算,来获得数组上的索引.这样的操作也可以称为碰撞检测.
执行add entry时,如果发现某个索引位置上已经存在有entry了,
则让新的ent ...
final static char[] digits = {
'0' , '1' , '2' , '3' , '4' , '5' ,
'6' , '7' , '8' , '9' , 'a' , 'b' ,
'c' , 'd' , 'e' , 'f' , 'g' , 'h' ,
'i' , 'j' , 'k' , 'l' , 'm' , 'n' ,
'o' , 'p' , 'q' , 'r' , 's' , 't' ,
'u' , 'v' , 'w' , 'x' , 'y' , 'z'
...
/**
* 将三个8位二进制看成一组,转为4个6位二进制组,不足8位的补0, 转完后, 对应4个十进制数字, 然后可以查找base64编码表
* (六位二进制数对应的最小十进制数是0,最大十进制数是63, 因此base64码表一共包含64个字符)进行编码
*
如果要转的字符个数不是3的倍数,则需要相应的补=
一个字符,需要补两个= 两个字符,需要补一个=
*
*
*
*
* 字符 A
* ASCII码 65
* 二进制码 010000 01
* 4个6位二进制码 010000 010000
* ...
Tomcat的核心是Connector和Container,多个Connector和一个Engine Container构成了一个service(Tomcat实现了一个名字为Catalina的service),有了service,就可以对外提供服务,service存活在server下,整个tomcat的生命周期都由server来控制。
不同的Connector用于接收不同协议的外部请求,Connector会将接收到的请求转换为相同的格式,传递给Engine容器做具体的处理。
Engine容器下面可以包含多个虚拟主机(Host Container),每个虚拟主机作为一个独立的站点,对外提供服务 ...
JDBC(Java DataBase Connectivity):是SUN制定的一套java连接/操作数据库的规范。属于Java SE的一部分,接口和类主要分布在java.sql和javax.sql中。
Java应用程序只是简单的调用JDBC API完成数据库的操作,底层的代码是由具体的Driver(各个数据库生产厂商提供)实现。
我的第一个JDBC程序
// First, register jdbc driver
Class.forName("com.mysql.jdbc.Driver");
// Second, get connecti ...
创建简单的存储过程
创建简单的函数
事务:是数据库管理系统的执行单元,可以是一个数据库操作或者一组数据库操作序列。
事务的ACID属性,原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持续性(Durability)。
原子性:事务中所有的数据库操作要么全部成功,要么全部失败。如现实生活中的转账操作。
一致性:保证数据库数据始终一致(事务操作前,事务操作后)。
隔离性:多个事务并发执行的结果应该和串行执行的效果是一致的。显然最简单的隔离就是将所有的事务都串行执行,先来的先执行,但是这样子效率会很低下。如果多个事务只是读取同一批数据,完全可以并发进行。为了控制并发执行的效果就有了不同的隔 ...