![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA基础
奔跑着的国风
为了梦想,一切都是值得的!!!加油吧,小伙伴们!!!
展开
-
sleep()与wait()有什么区别
1.wait()方法属于object类中的,sleep()是属于Thread类中的2.sleep()方法导致程序暂停执行指定的时间,让出CPU给其他线程,但是线程不会释放对象锁,并且到指定的时间又会自动恢复运行状态3.当调用wait()方法的时候,线程会放弃对象锁,并且进入等待池等待,当针对此对象调用notity(),notifyall()方法后,线程才进入对象锁定池准备,获取对象锁进入运行状态。原创 2016-04-25 12:53:45 · 526 阅读 · 0 评论 -
Java多线程中join方法的理解
Example1:Java代码 public class JoinTest implements Runnable{ public static int a = 0; public void run() { for (int k = 0; k 5; k++) { a转载 2016-05-03 22:19:56 · 1718 阅读 · 0 评论 -
创建线程的三种方法
第一种方法:继承Thread类,重写run()方法,run()方法代表线程要执行的任务。第二种方法:实现Runnable接口,重写run()方法,run()方法代表线程要执行的任务。第三种方法:实现callable接口,重写call()方法,call()作为线程的执行体,具有返回值,并且可以对异常进行声明和抛出原创 2016-04-16 21:34:01 · 16069 阅读 · 3 评论 -
Hashmap的内部机制
1.Hashmap是数据结构中哈希表的实现,可以把它看成是一个线性数组Entry[],每一个数组元素中存储的都是一个链表的头结点,Hashmap中的内容都放在数组中,数组的默认长度为16,每个数组元素都有key,value,next三个属性2.每当调用Hashmap的put()方法的时候:int hash=hash(key.hashcode());int index=hash%Entr原创 2016-04-14 12:58:17 · 747 阅读 · 0 评论 -
object类的9个方法
object类有9个方法原创 2016-04-15 08:42:56 · 3543 阅读 · 0 评论 -
异常处理代码之简洁(一)
JAVA异常处理转载 2016-04-15 00:36:23 · 642 阅读 · 0 评论 -
遍历HashMap的几种常用方法
1.可以采用keySet()+for循环的方法来遍历,keySet()返回的是一个Key值的集合Map map=new HashMap();map.put("key1","value1");map.put("key2","value2");map.put("key3","value3");for(String key:map.keySet()){ system.out.pri原创 2016-04-22 11:24:23 · 4187 阅读 · 1 评论 -
JSP中静态包含和动态包含的区别?
主要从以下5方面进行分析:1.语法: 静态包含:<%@ include file=""%> 动态包含:<jsp: include page=""%>2.静态包含时,包含页面和被包含页面中的html.head,body等标签总共只有出现一次,否则会报错;而动态包含不会。3.静态包含不会检查所包含文件中的变化;但是动态包含,可以检查所含文件中的变化,并且可以带参数4.静态包含是先将文件中内容导入被包含的文件中,再一起编译,最后再展现给用户(先包含再编译)5.动态包含可以自动区分被包含文件是静态的还原创 2016-04-23 16:01:43 · 7244 阅读 · 0 评论 -
java中的compareto方法的详细介绍
java中的compareto方法,返回参与比较的前后两个字符串的asc码的差值,看下面一组代码String a="a",b="b";System.out.println(a.compareto(b));则输出-1;若a="a",b="a"则输出0;若a="b",b="a"则输出1; 单个字符这样比较,若字符串比较长呢??若a="ab",b="b",则输出-1;若a="abcdef",b="b"则输出-1;也就是说,如果两个字符串首字母不同,则该方法返回首字母的asc码的差值; 如果转载 2016-04-23 16:49:18 · 9426 阅读 · 0 评论 -
深入理解Arrays.sort()
Arrays.sort(T[], Comparator < ? super T > c) 方法用于对象数组按用户自定义规则排序.官方Java文档只是简要描述此方法的作用,并未进行详细的介绍,本文将深入解析此方法。1. 简单示例sort方法的使用非常的简单明了,下面的例子中,先定义一个比较Dog大小的Comparator,然后将其实例对象作为参数传给sort方法,通过此示例,你应该能够快速掌握Arrays.sort()的使用方法。转载 2016-04-23 17:12:45 · 654 阅读 · 0 评论 -
Java泛型
一. 泛型概念的提出(为什么需要泛型)?首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(String[] args) { 4 List list = new ArrayList(); 5 list.add("qqyumidi")原创 2016-06-08 09:30:17 · 1384 阅读 · 2 评论 -
HTTP请求报文和响应报文
HTTP(Hypertext Transfer Protocol, 超文本传输协议)是目前最常用的应用层协议之一。基于HTTP协议的客户/服务器模式的信息交换过程,它分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。1.HTTP请求报文这是一段实际的请求报文截图①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、原创 2016-06-03 21:50:17 · 4094 阅读 · 0 评论 -
Java多线程(一)
一.线程的生命周期及五种基本状态Java线程具有五中基本状态新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread();就绪状态(Runnable):当调用线程对象的start()方法(t.start();),线程即进入就绪状态。处于就绪状态的线程,只是说明此线程已经做好了准备,随时等待CPU调度执行,并不是说执行了转载 2016-06-05 10:31:46 · 1899 阅读 · 0 评论 -
Java多线程(二)
本文承接上一篇文章《Java多线程(一)》。四.Java多线程的阻塞状态与线程控制上文已经提到Java阻塞的几种具体类型。下面分别看下引起Java线程阻塞的主要方法。1.join()join —— 让一个线程等待另一个线程完成才继续执行。如A线程线程执行体中调用B线程的join()方法,则A线程被阻塞,知道B线程执行完为止,A才能得以继续执行。 1 pu转载 2016-06-07 08:56:43 · 1244 阅读 · 0 评论 -
Java多线程(三)
本文主要接着前面多线程的两篇文章总结Java多线程中的线程安全问题。一.一个典型的Java线程安全例子 1 public class ThreadTest { 2 3 public static void main(String[] args) { 4 Account account = new Account("123456", 1000);转载 2016-06-07 10:37:06 · 927 阅读 · 0 评论 -
try_catch_finally的注意事项
public class Test {public static String str = "";public static void fun(int i) {try {if(i == 1) {throw new Exception();}str += "1";} catch (Exception e) {// TODO: handle原创 2016-04-15 15:04:49 · 390 阅读 · 0 评论 -
Servlet生命周期与工作原理
Servlet生命周期分为三个阶段: 1,初始化阶段 调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法Servlet初始化阶段: 在下列时刻Servlet容器装载Servlet: 1,Servlet容器启动时自动装载某些Servlet,实现它只需要在web.X转载 2016-04-22 11:36:40 · 422 阅读 · 0 评论 -
Servlet 生命周期、工作原理
Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁。init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()。service():它是S转载 2016-04-22 11:35:36 · 426 阅读 · 0 评论 -
重写与重载的区别
重写与重载都是JAVA多态性的不同表现。重写体现的是子类与父类之间的多态性表现。重载体现的是一个类中多态性一种表现。一、重写(覆盖)的规则: 1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载. 2、重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private)。 3、重写的方原创 2016-04-22 10:55:20 · 2218 阅读 · 0 评论 -
JAVA四种引用方式
1.1、强引用当我们使用new 这个关键字创建对象时被创建的对象就是强引用,如Object object = new Object() 这个Object()就是一个强引用了,如果一个对象具有强引用。垃圾回收器就不会去回收有强引用的对象。如当jvm内存不足时,具备强引用的对象,虚拟机宁可会报内存空间不足的异常来终止程序,也不会靠垃圾回收器去回收该对象来解决内存。1.2、软引用如果一个对象具备软引用,如果内存空间足够,那么垃圾回收器就不会回收它,如果内存空间不足了,就会回收该对象。当然没有被回收之前,该对转载 2016-04-25 13:05:39 · 973 阅读 · 0 评论 -
ArrayList,Vector,LinkedList的区别
主要从以下几个方面来分析:1.接口三则都是List接口的实现类2.内部存储的实现方式ArrayList,Vector内部存储的实现方式是动态数组,在内存中是连续存放的,而LinkedList是以链表的方式来实现存储的,在内存中不是连续存放的。3.从线程安全性来比较和效率Vector的是许多方法都用synchronized来修饰(加同步锁),所以Vector是线程安全的,而A原创 2016-04-18 23:23:29 · 407 阅读 · 0 评论 -
JSP内置对象
共有9大内置对象:1.request javax.servlet.ServletRequest的子类型,此对象封装了由WEB浏览器或其它客户端生成地HTTP请求的细节(参数,属性,头标和数据) 作用域为request(用户请求期)2.response javax.servlet.ServletResponse的子类型,此对象封装了返回到HTTP客户端的输出,向页面作者提原创 2016-04-19 08:39:35 · 345 阅读 · 0 评论 -
JAVA版的微信红包算法
比如发一个总额为50元的红包,总共分5个:第一个:在0~10元之间随机产生一个数,作为这一个红包的钱数,设为x1:第二个:剩下的钱为(50-x1),然后在0~(50-x1)/(5-1)随机一个数,作为这份的钱数,设x2。。。第5份:剩下的钱为(50-x1-x2-...x4),系统由0~(50-x1-x2-...-xn-1)/(5-4)随机一个数,作为这个份的钱数,设为xn首先定原创 2016-05-03 19:39:05 · 4177 阅读 · 1 评论 -
synchronized与static synchronized 的区别
1.synchronized与static synchronized 的区别 synchronized是对类的当前实例进行加锁,防止其他线程同时访问该类的该实例的所有synchronized块,注意这里是“类的当前实例”, 类的两个不同实例就没有这种约束了。 static synchronized恰好就是要控制类的所有实例的访问了,static synchroniz转载 2016-04-20 11:51:10 · 644 阅读 · 0 评论 -
session小结
一、Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。二、Session和Coo转载 2016-04-20 11:18:50 · 290 阅读 · 0 评论 -
session与cookies的区别
1.session的简单介绍session是一种保存上下文信息的机制,保存的是对象,它的值是存放在服务器端,它通过sessionId来区分不同的客户端,而sessionId是保存在客户端的,做为客户端与服务器的验证标识,它是一个24位的随机字符串,用户每次提交页面时,浏览器都会把这个sessionId包含在HTTP头中提交给WEB服务器。2.session的产生过程当服务器接收到客户端原创 2016-04-20 11:14:11 · 2039 阅读 · 0 评论 -
JAVA对象的序列化和反序列化
一、序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是转载 2016-04-19 23:39:11 · 440 阅读 · 1 评论 -
HashMap,HashTable,HashSet之间的区别
HashMap,HashTable,HashSet之间的区别1.实现接口的不同 3.执行效率2.线程安全性,同步 4.key,value能否存放NULL5.添加元素的方法不同原创 2016-04-18 19:35:06 · 2019 阅读 · 1 评论 -
JAVA接口与抽象类的区别
从以下几个方面来介绍:1.修饰符的不同: 接口:interface 抽象类:abstract2.成员属性: 抽象类不能有成员变量,而接口可以有成员变量,但必须是public static final3.成员方法: 接口中的方法,默认都是public abstract,并且不能有普通方法;而抽象类中可以有非抽象方法,也可以有 抽象方法4.构造方法: 接口中不能有构造方法,而抽象类中可以有构造方法5.继承与实现: 实现接口必须实现其所有的方法,而继承抽象类时,可以不对所有抽象方法进行重写原创 2016-04-23 15:45:48 · 449 阅读 · 0 评论 -
TCP,UDP,三次握手
1.TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来.2.UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!3.TCP与原创 2016-04-21 10:41:22 · 3126 阅读 · 0 评论 -
servlet/filter/listener/interceptor区别与联系
一、概念: 1、servlet:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。最早支持 Servlet 技术的是 JavaSoft 的 Java Web Server。此后,一些其它的基于 Java 的 Web Server 开始支持标准的 Servlet API。S转载 2016-04-21 10:55:07 · 507 阅读 · 0 评论 -
String.valueOf() 方法的使用
1.由基本数据型态转换成 String String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 也就是 String.valueOf() 这个参数多载的方法 有下列几种 String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串 String.valueOf(char c) : 将 char 变量 c 转转载 2016-04-21 19:34:00 · 1619 阅读 · 0 评论 -
intValue()的用法
1.intValue()是java.lang.Number类的方法,Number是一个抽象类。Java中所有的数值类都继承它。也就是说,不单是Integer有intValue方法,Double,Long等都有此方法。 2.此方法的意思是:输出int数据。每个数值类中具体的实现是不同的。例如: Float类和Double类的intValue方法,就是丢掉了小数位,而Long的intValue原创 2016-04-21 19:40:11 · 38711 阅读 · 1 评论 -
BigInteger的相关用法
JAVA之BigInteger用Java来处理高精度问题,相信对很多ACMer来说都是一件很happy的事,简单易懂。用Java刷了一些题,感觉Java还不错,在处理高精度和进制转换中,调用库函数的来处理。下面是写的一些Java中一些基本的函数的及其……头文件:import java.io.*;import java.util.*;imp转载 2016-04-21 19:50:54 · 569 阅读 · 0 评论 -
Eclipse注释格式
Window --> Java --> Code Style --> Code Templates --> Comments --> types --> Edit /** * * 项目名称:${project_name} * 类名称:${type_name} * 类描述: * 创建人:${user} * 创建时间:${date} ${tim原创 2016-12-22 22:27:13 · 995 阅读 · 0 评论