
java基础
文章平均质量分 73
bieleyang
这个作者很懒,什么都没留下…
展开
-
Java中extends 与 implement 区别
简单说: 1.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,2.JAVA中不支持多重继承,但是可以用接口来实现,这样就要用到implements,3.继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了 , 比如 class A extends B implementsC,D,E转载 2017-02-07 14:51:01 · 2744 阅读 · 0 评论 -
Java 8的新特性
前言: Java 8 已经发布很久了,很多报道表明java8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java 8 – Lambdas and Concurrency、Java 8 Date Time API Tutorial : LocalDateTime和Abstract Class Vers转载 2017-09-02 21:44:03 · 423 阅读 · 0 评论 -
java中的匿名内部类总结
匿名内部类也就是没有名字的内部类正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 实例1:不使用匿名内部类来实现抽象方法12345678910111213141516abstract clas转载 2017-09-02 22:13:08 · 285 阅读 · 0 评论 -
Tomcat面试题目
1.tomcat给你你怎样去调优?1. JVM参数调优:-Xms 表示JVM初始化堆的大小,-Xmx表示JVM堆的最大值。这两个值的大小一般根据需要进行设置。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%。在catalina.bat中,设置JAVA_OPTS='-Xms256m -Xmx512m',表示转载 2017-09-02 22:57:24 · 3554 阅读 · 0 评论 -
心得
1. HashMap中的hash计算方式(为什么)减少hash是的碰撞2. 下表查找(和hash值的关系)hashcode ^ (hashcode >>> 16),让低16位同时包含了高位和低位的信息,在计算下标时,由于高位和低位的同时参与,减少hash的碰撞。(n - 1) & hashCode:n - 1 使得低位全为1,高位全为0,位与之后的结果一定在0 ---> n-1范围原创 2017-09-26 09:58:23 · 371 阅读 · 0 评论 -
Servlet与JSP的区别
一、基本概念 1.1 Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的J原创 2017-09-02 22:54:27 · 493 阅读 · 0 评论 -
HashTable和HashMap的区别详解
一、HashMap简介 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。 HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。 HashMap 实现了Serializable接原创 2017-08-03 16:10:24 · 346 阅读 · 0 评论 -
解决Hash冲突的几种方法
开放地址法:1.线性探测法 线性再散列法是形式最简单的处理冲突的方法。插入元素时,如果发生冲突,算法会简单的从该槽位置向后循环遍历hash表,直到找到表中的下一个空槽,并将该元素放入该槽中(会导致相同hash值的元素挨在一起和其他hash值对应的槽被占用)。查找元素时,首先散列值所指向的槽,如果没有找到匹配,则继续从该槽遍历hash表,直到:(1)找到相应的元素原创 2017-08-03 16:17:04 · 569 阅读 · 0 评论 -
Cookie与Session的区别
本文分别对Cookie与Session做一个介绍和总结,并分别对两个知识点进行对比分析,让大家对Cookie和Session有一个更深入的了解,并对自己的开发工作中灵活运用带来启示。cookie机制Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。IETF RFC 2965 HTTP State Management Mechanism 是通用cooki原创 2017-09-02 22:52:43 · 387 阅读 · 0 评论 -
Servlet接口五种方法介绍
Servlet接口定义了5种方法:init()service()destroy()getServletConfig()getServletInfo()init()在Servlet实例化后,Servlet容器会调用init()方法来初始化该对象,主要是为了让Servlet对象在处理客户请求前可以完成一些初始化工作,例如:建立数据库的连接,获取配置信息等。对于每一个Servlet实原创 2017-08-04 22:44:08 · 14079 阅读 · 0 评论 -
get/post 以及幂等性
理解HTTP幂等性基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢?我认为很大程度上应归功于简单有效的HTTP协议。HTTP协议是一种分布式的面向资源的网络应用层协议,无论是服务器端提供Web服务,还是客户端消费Web服务都非常原创 2017-07-28 17:41:25 · 18460 阅读 · 2 评论 -
HashMap实现原理分析(详解)
1. HashMap的数据结构http://blog.youkuaiyun.com/gaopu12345/article/details/50831631 ??看一下 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难。链表原创 2017-08-03 16:49:41 · 716 阅读 · 0 评论 -
static关键字的特点之——类静态成员变量在内存中的位置
在类成员变量中,必要的时候可以用static将成员变量修饰为静态,来提高代码高效性、节省内存空间;在程序执行时,先将class文件加载进内存中的方法区,然后主方法进栈,主方法执行过程中会定义变量(基本类型变量在栈中存放、引用类型变量在堆中存放[引用类型就是封装好的类嘛]),调用方法(在栈内存中,可以理解,主方法也是方法,所以方法执行的时候都要进栈,执行完弹出,至于方法中的执行过程和主方法就相一原创 2017-08-03 10:28:11 · 3237 阅读 · 0 评论 -
输入url到页面返回的全过程
在比较全面的学习了计算机网络之后,我们可以来谈一谈生活中经常遇到的一个比较经典的问题,就是描述一下从输入url到页面返回的全过程。1. 我们输入一个域名:www.baidu.com,然后点击确认;2. 浏览器查找域名的IP地址。查找过程如下:首先是浏览器缓存,浏览器会缓存DNS记录一段时间;如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用,获取系统缓原创 2017-07-28 16:00:47 · 423 阅读 · 0 评论 -
web前后台数据交互
1.利用cookie对象 Cookie是服务器保存在客户端中的一小段数据信息。使用Cookie有一个前提,就是客户端浏览器允许使用Cookie并对此做出相应的设置。一般不赞成使用Cookie。(1)后台代码12Cookie cookie=newCookie("name","hello"); response.addC转载 2017-08-31 17:07:56 · 3500 阅读 · 1 评论 -
重定向与请求转发的区别
请求重定向与请求转发的比较,HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法都可以让浏览器获得另外一个URL所指向的资源,但两者的内部运行机制有很大的区别。1.RequestDispatcher.forward方法只能将请求转发给同一个Web应用中的组件,HttpServletResponse.sendRedire原创 2017-03-07 11:57:03 · 548 阅读 · 0 评论 -
表达式语言的pageContext对象
pageContext对象我们可以使用 ${pageContext}来取得其他有关用户要求或页面的详细信息。下面列出了几个比较常用的部分。Expression 说 明${pageContext.request} |取得请求对象${pageContext.session} |取得session对象 ${pageContext.request.queryString} |取得请转载 2017-02-08 16:32:50 · 687 阅读 · 0 评论 -
使用JSON进行数据传输的总结
一、选择的意义在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式。为了更好的使用ajax, 我们将学习一种有用的数据格式 JavaScript Object Notation (JSON ),以及如何使用它更轻松地在应用程序中移动数据和对象。JSON 是一种简单的数据交换格式,在某些方面,它的作用与XML 非常类似,但比XML 更为简单,JSON 的语法简化了数转载 2017-03-28 09:11:54 · 4504 阅读 · 0 评论 -
Java迭代器(转)(iterator详解以及和for循环的区别)
迭代器是一种模式,它可以使得对于序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的。只要拿到这个对象,使用迭代器就可以遍历这个对象的内部.1.IteratorJava提供一个专门的迭代器>Iterator,我们可以对某个序列实现该interface,来提供标准的Java迭代器。Iterator接口实现后的功能是“使用”一个迭代器.文档定义:转载 2017-04-03 10:57:52 · 3185 阅读 · 0 评论 -
Java中native关键字
今日在hibernate源代码中遇到了native关键词,甚是陌生,就查了点资料,对native是什么东西有了那么一点了解,并做一小记。native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中。Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言来实现对底层的访问。JNI是Java转载 2017-08-03 09:38:40 · 255 阅读 · 0 评论 -
JAVA多线程和并发基础面试问答
JAVA多线程和并发基础面试问答原文链接 译文连接 作者:Pankaj 译者:郑旭东 校对:方腾飞多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点)Java多线程面试问题1. 进程和线程之间有什么不同?一个进程是一个转载 2017-08-03 19:45:11 · 595 阅读 · 0 评论 -
JAVA在ACM/各类在线笔试题中的使用
一、Java之ACM注意点1. 类名称必须采用public class Main方式命名2. 在有些OJ系统上,即便是输出的末尾多了一个“ ”,程序可能会输出错误,所以在我看来好多OJ系统做的是非常之垃圾3. 有些OJ上的题目会直接将OI上的题目拷贝过来,所以即便是题目中有输入和输出文件,可能也不需要,因为在OJ系统中一般是采用标准输入输出,不需要文件4. 在有多行转载 2017-09-14 13:14:19 · 1744 阅读 · 0 评论 -
Tomcat原理详解及请求过程
Tomcat: Tomcat是一个JSP/Servlet容器。其作为Servlet容器,有三种工作模式:独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。Tomcat目录:tomcat |---bin:存放启动和关闭tomcat脚本 |---conf:存放不同的配置文件(server.xml和web.xml); |---doc:存放T转载 2017-09-25 23:09:55 · 594 阅读 · 0 评论 -
spring mvc 和struts2的区别
SpringMVC与Struts2区别与比较总结一、框架机制1、Struts2采用Filter(StrutsPrepareAndExecuteFilter)实现,SpringMVC(DispatcherServlet)则采用Servlet实现。2、Filter在容器启动之后即初始化;服务停止以后坠毁,晚于Servlet。Servlet在是在调用时初始化,先于Filter调用,服转载 2017-08-04 23:08:45 · 803 阅读 · 1 评论 -
序列化和反序列化的简单理解
一、序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是转载 2017-08-04 15:21:40 · 348 阅读 · 0 评论 -
Java 8系列之重新认识HashMap
摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介Java为数据结构中的映射定义了一个接口java.ut转载 2017-08-03 16:43:02 · 254 阅读 · 0 评论 -
HashMap与ConcurrentHashMap的区别
从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。ConcurrentHashMap具体是怎么实现线程安全的呢,肯定不可能是每个方法加synchronized,那样就变成了HashTable。从Conc转载 2017-08-03 15:18:55 · 255 阅读 · 0 评论 -
数据存储——HashMap,Hashtable的区别
HashTable和HashMap区别第一,继承的父类不同。Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类。但二者都实现了Map接口。第二,线程安全性不同。Hashtable 中的方法是Synchronize的,而HashMap中的方法在缺省情况下是非Synchronize的。在多线程并发的环境下,可以直接使用Hashtable,转载 2017-07-30 16:59:32 · 325 阅读 · 0 评论 -
http/https 1.0、1.1、2.0
HTTPS和HTTP的区别什么是 HTTPS?HTTPS (基于安全套接字层的超文本传输协议 或者是 HTTP over SSL) 是一个 Netscape 开发的 Web 协议。你也可以说:HTTPS = HTTP + SSLHTTPS 在 HTTP 应用层的基础上使用安全套接字层作为子层。为什么需要 HTTPS ?超文本传输协议 (H转载 2017-07-28 17:20:00 · 15216 阅读 · 0 评论 -
JAVA 通过 Socket 实现 TCP 编程
简介TCP简介TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP,下一篇博客会实现)是同一层内 另一个重要的传输协议。在因特网协议族(Internet protocol suite)中转载 2017-07-18 22:25:45 · 442 阅读 · 0 评论 -
Drools6 入门学习(一)——Drools6新特性
其实Drools6有挺多优秀的入门学习资料了,按理说没必要在重复别人的内容了。不过由于项目的需要,需要对Drools有个透彻的了解甚至说现有的中文资料都没法支持我把需求做出来,所以还是把基础打扎实把。所以什么是规则引擎,什么是Drools,就都先参考下以下资料吧。Drools5官方中文文档(供参考):http://pan.baidu.com/s/1sj6uoQpDrools6的入门资料:h...转载 2019-05-26 23:28:32 · 789 阅读 · 0 评论