
个人学习
呜啦啦、
一蓑烟雨任平生
展开
-
synchronized与Lock的区别
类别 synchronized Lock 存在层次 Java的关键字,在jvm层面上 是一个类 锁的释放 1、以获取锁的线程执行完同步代码,释放锁 2、线程执行发生异常,jvm会让线程释放锁 在finally中必须释放锁,不然容易造成线程死锁 锁的获取 假设A线程获得锁,B线程等待。如果A线程阻塞,B线程会一直等待 分...转载 2019-03-19 11:49:10 · 291 阅读 · 0 评论 -
Java 中 List,Set,Map 简单总结
List 和 Set 是存储单列数据的集合,Map 是存储键和值这样的双列数据的集合;List 中存储的数据是有顺序,并且允许重复;Set 中存储的数据是无序的,且不允许有重复Map 中存储的数据是没有顺序的,其键是不能重复的,它的值是可以有重复的,List 接口有三个实现类:ArrayList 底层结构是数组,底层查询快,增删慢。LinkedList 底层结构是链表型的,...原创 2019-02-17 16:07:58 · 305 阅读 · 0 评论 -
java中,普通集合、同步的集合、并发集合。
在Java中,有普通集合、同步的集合(即线程安全的集合)、并发集合。并发集合常见的有ConcurrentHashMap、ConcurrentLinkedQueue、ConcurrentLinkedDeque等。并发集合位于java.util.concurrent包下,是在JDK1.5之后才有的。普通集合通常性能最高,但是不保证多线程的安全性和并发的可靠性;线程安全集合仅仅是给集合添加了s...转载 2019-02-17 15:52:59 · 427 阅读 · 0 评论 -
ArrayList 内部实现简单理解
ArrayList是基于数组的, 内部是用 Object[]实现的当new 一个空参 ArrayList 的时候,系统生成一个长度为0的Object数组。当new一个有参的ArrayList的时候,该值作为数组的长度值。如果该值小于 0,则抛出一个运行时异常。如果等于 0,则使用一个空数组,如果大于 0,则创建一个长度为该值的新数组。当向集合添加的且长度不够时,把原来的数组Copy到一...原创 2019-02-17 15:39:48 · 444 阅读 · 0 评论 -
Java中== 和 equals
先总结后分析:总结: 1)对于==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等; 如果作用于引用类型的变量,则比较的是所指向的对象的地址 2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量 如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址; 诸如String、Date等类对e...转载 2019-02-22 11:37:23 · 242 阅读 · 0 评论 -
简单理解简单集合,同步集合,并发集合
在Java中,有普通集合、同步的集合(即线程安全的集合)、并发集合。并发集合常见的有ConcurrentHashMap、ConcurrentLinkedQueue、ConcurrentLinkedDeque等。并发集合位于java.util.concurrent包下,是在JDK1.5之后才有的。普通集合通常性能最高,但是不保证多线程的安全性和并发的可靠性;线程安全集合仅仅是给集合添加了s...转载 2019-02-10 21:09:44 · 406 阅读 · 0 评论 -
Linux常用命令
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示C...转载 2019-02-09 21:22:47 · 240 阅读 · 0 评论 -
PL/SQL Developer12汉化教程
1.先下载相应的汉化包下载路径:https://www.allroundautomations.com/plsqldevlang/120/index.html2.下载后放入 PL/SQL Developer12安装目录3.运行chinese.exe 后安装在同一个目录下面。4.重启成功...原创 2019-02-21 19:32:27 · 971 阅读 · 0 评论 -
HTTP协议中TCP的三次握手,四次挥手总结
发现一篇很好博文,转转转。。。 https://www.cnblogs.com/zxh930508/p/5432700.html转载 2019-02-06 18:55:42 · 256 阅读 · 0 评论 -
oracle中字符与ASCII码的相互转化
chr()函数将ASCII码转换为字符ascii()函数将字符转换为ASCII码 实例:输出26个大写字母的ASCII码clear;set serveroutput on;declare v_i char(10) := 'A';begin for v_j in 1..25 loop dbms_output.put_line(v_i||ASCII(v_...原创 2019-02-22 17:38:52 · 1644 阅读 · 0 评论 -
jsp之九大内置对象与四大域对象
一,什么是内置对象?在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创建就会特别的繁琐.SUN公司因此在设计jsp时,在jsp页面加载完毕之后自动帮开发者创建好了这些对象,开发者只需要使用相应的对象调用相应的方法即可.这些系统创建好的对象就叫做内置对象.在ser...转载 2019-02-22 20:02:24 · 296 阅读 · 0 评论 -
Java中instanceof关键字的理解
java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。用法: result = object instanceof class 参数: Result:布尔类型。 Object:必选项。任意对象表达式。 Class:必选项。任意已定义的对象类。 说明: ...转载 2019-02-18 16:14:07 · 214 阅读 · 0 评论 -
基本类型参数和引用类型参数
基本类型参数传递:不改变值引用类型参数传递:改变值看下边的一段代码,然后结合内存模型来说明问题:publicclassParameterTransfer {publicstaticvoidmain(String[] args) {intnum =30;System.out.println("调用ad...转载 2019-03-08 10:09:24 · 3894 阅读 · 0 评论 -
jvm,jre以及jdk三者之间的关系?
JDKJDK是java开发工具包,在其安装目录下面有六个文件夹、一些描述文件、一个src压缩文件。bin、include、lib、 jre这四个文件夹起作用,demo、sample是一些例子。可以看出来JDK包含JRE,而JRE包含JVM。bin:最主要的是编译器(javac.exe)include:java和JVM交互用的头文件lib:类库jre:java运行环境(注意:这里的bi...转载 2019-03-12 10:02:22 · 1293 阅读 · 0 评论 -
Java同步三种实现方式
Java中同步的几种实现方式1.使用synchronized关键字修饰类或者代码块;2.使用Volatile关键字修饰变量;3.在类中加入重入锁。代码示例:非同步状态下:public static void main(String[] args){ Increase increase = new Increase(); int count ...转载 2019-03-06 16:45:39 · 529 阅读 · 0 评论 -
Java中多线程实现的方式(四种)
Java多线程实现的方式有四种1.继承Thread类,重写run方法2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target3.通过Callable和FutureTask创建线程4.通过线程池创建线程前面两种可以归结为一类:无返回值,原因很简单,通过重写run方法,run方式的返回值是void,所以没有办法返回结果...转载 2019-03-06 15:45:30 · 265 阅读 · 0 评论 -
JDBC 连接Oracle
首先要导入驱动包,可以网上下对应数据库版本的驱动包,也可以使用自带的,我就使用自带的,我的目录:C:\Oracle11g\product\11.2.0\dbhome_1\jdbc\lib\ojdbc6.jar。为了代码逻辑好看,都把异常抛出去,连接:原始方法public class BaseDao { //定义数据库连接属性 private static Stri...原创 2019-02-27 09:59:45 · 645 阅读 · 0 评论 -
Oracle数据库存储过程
1、定义所谓存储过程(Stored Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数来调用并执行它,从而完成一个或一系列的数据库操作。2、存储过程的创建Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。(1)无参存储过程语法...转载 2019-02-27 09:47:37 · 374 阅读 · 0 评论 -
删除数据库中所有数据,保留表结构
一般有两种方式:①:delete from table_name;例:delete from student;②:truncate table table_name;例:truncate table student;原创 2019-02-28 11:39:48 · 7990 阅读 · 0 评论 -
IDEA配置Maven
https://www.cnblogs.com/sigm/p/6035155.html转载 2019-02-18 20:10:28 · 184 阅读 · 0 评论 -
volatile和synchronized的作用及区别
java的线程抽象内存模型java的线程抽象内存模型中定义了每个线程都有一份自己的私有内存,里面存放自己私有的数据,其他线程不能直接访问,而一些共享数据则存在主内存中,供所有线程进行访问。 上图中,如果线程A和线程B要进行通信,就要经过主内存,比如线程B要获取线程A修改后的共享变量的值,要经过下面两步: (1)、线程A修改自己的共享变量副本,并刷新到了主内存中。 ...转载 2019-01-16 15:00:40 · 174 阅读 · 0 评论 -
FileItem.getName()乱码
如果不做任何处理,利用FileUpload相关类解析的的文件,文件名会出现中文乱码问题,所以解析前应该设置编码,如下: ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding("UTF-8");//设成你的编码格式 ...转载 2019-01-21 22:25:21 · 1798 阅读 · 1 评论 -
一个数恰好等于它的因子之和, 这个数就称为”完数”. 例如 6 = 1+2+3。编程找出1000 以内的所有完数。
一个数如果恰好等于它的因子之和, 这个数就称为”完数”. 例如 6 = 1+2+3。编程找出1000 以内的所有完数。 Java代码实现:import java.util.LinkedList;public class Test { public static void main(String[] args) { for (int i = 2; i <...原创 2019-01-12 10:50:25 · 1800 阅读 · 0 评论 -
Request 重用方法
一、HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。二、Request常用方法2.1、获得客户机信息 getRequestURL方法返回客户端发出请求时的完整URL。 getReques...转载 2019-01-12 09:11:36 · 387 阅读 · 0 评论 -
URL 和 URI
初学java,最近被一个概念搞得头晕脑胀,就是url和uri的概念和区别,网上查了一大通,发现各种回答眼花缭乱,有百科直接粘贴的,有胡说八道的,有故意绕来绕去的,我估计他自己都没搞懂,按照马士兵的说法就是,通通都是一些冠冕堂皇的套话,说了等于没说,本来就是一个很抽象的概念,还用很抽象的的方式来答复,这不是让人虐心吗?经过我潜心研究了一番,把他们的区别分享给大家,我相信很多新手都不会一下子明白这两个...转载 2019-01-03 16:07:57 · 157 阅读 · 0 评论 -
HashSet与TreeSet的区别
1、HashSet与TreeSet接口的一点不同,HashSet 保存的数据是无序的,TreeSet保存的数据是有序的,所以如果要想保存的数据有序应该使用TreeSet子类。2、利用TreeSet保存自定义类对象的时候,自定义所在的类一定要实现Comparable接口,如果没有实现这个接口那么就无法区分大小关系,而且在TreeSet中如果要进行排序,那么就要将所有的字段都进行比较,就是说在T...转载 2018-12-05 21:25:54 · 587 阅读 · 0 评论 -
IDEA 常用快捷键
IntelliJ Idea 常用快捷键列表Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F...转载 2018-11-19 20:33:13 · 127 阅读 · 0 评论 -
eclipse 的文件导入到IDEA中出现乱码问题
1. 打开导入的代码。点击右下角GBK 选择UTF-8。 2.在弹出的窗口中选择 convert (转换)原创 2018-11-19 17:40:18 · 1516 阅读 · 0 评论 -
源码 ,反吗,补码
数值在计算机中是以补码的方式存储的,在探求为何计算机要使用补码之前, 让我们先了解原码, 反码和补码的概念。 对于一个数, 计算机要使用一定的编码方式进行存储。 原码, 反码, 补码是计算机存储一个具体数字的编码方式。 一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1。比如,十进制中的数 +2 ,计算机...转载 2018-11-13 14:47:27 · 341 阅读 · 0 评论 -
十种常见排序算法
1.常见算法分类十种常见排序算法一般分为以下几种: (1)非线性时间比较类排序:交换类排序(快速排序和冒泡排序)、插入类排序(简单插入排序和希尔排序)、选择类排序(简单选择排序和堆排序)、归并排序(二路归并排序和多路归并排序);(2)线性时间非比较类排序:计数排序、基数排序和桶排序。总结: (1)在比较类排序中,归并排序号称最快,其次是快速排序和堆排序,两者不相伯仲,但是有一点需要注意,数据初始排...转载 2018-07-06 12:00:34 · 265 阅读 · 0 评论 -
cookie,session,servletContest 详解
看见一片很好的博文,收藏了! 感谢博主!!https://www.cnblogs.com/lovechara/p/5455525.html原创 2019-01-12 15:00:04 · 210 阅读 · 0 评论 -
Filter过滤器实现自动登录
Filter介绍问题:Filter是什么,它能做什么? 1.从两个方面来解析Filter是什么? 1.功能 可以帮助我们对请求与响应操作进行过滤。 2.技术 Sun公司定义的一个接口,javax.servlet.Filter 2.Filter能完成什么操作? 常用示例: 1.通用编码过滤器. 2.粗粒度的权...转载 2019-01-14 13:22:02 · 289 阅读 · 0 评论 -
XML 过滤器配置
在web开发过程中,往往需要在web.xml中进行过滤配置,对用户的请求以及服务器的响应进行过滤。 过滤器的实现总结: 1、定义一个类实现Filter接口 2、在init()初始化方法中获取web.xml中配置的参数值 3、在doFilter方法中实现过滤逻辑Filter接口提供了三个方法:init():初始化,读取web.xml中配置的参数doFilter():实...转载 2019-01-14 19:53:15 · 1639 阅读 · 0 评论 -
XMLHttpRequest对象的属性与方法总结
XMLHttpRequest对象是Ajax的核心,它有很多属性和方法。1,readyState属性当一个XMLHttpRequest对象被创立后,readyState属性标示了当前对象处于什么状态,可以通过对该属性的访问,来判读此次请求的状态然后做出相应的操作,case 0 :未初始化状态,此时,已经创建了一个XMLHttpRequest对象,但是还没有初始化。Case 1:准备发送状...转载 2019-01-26 19:58:43 · 412 阅读 · 0 评论 -
jQuery定时器简单使用
jQuery定时器下面介绍一个用jQuery实现JS中的定时器方法,在jQuery中的jQuery Timers插件中已封装JS的setTimeout 和 setInterval 方法.在jQuery Timers中提供了3个函数式everyTime(时间间隔, [计时器名称], 函式名称, [次数限制], [等待函式程序完成]) oneTime(时间间隔, [计时器名称], 呼叫的函...转载 2019-01-31 14:25:37 · 7227 阅读 · 0 评论 -
html之间传值之localStorage
<input type="text" name="username" /> <input type="button" name="" value="post" onclick="set()"/> <script> function set() { //由于是一个新的技术,你可以通过下面原创 2019-01-31 13:28:36 · 763 阅读 · 0 评论 -
JS中数组常用方法总结
1.push() 后增push()方法可以向数组后添加一个新的元素,并返回新数组的长度。末尾添加,返回长度,改变原数组var a = [1,2,3]var b = a.push(4) console.log(a) // [1,2,3,4] console.log(b) // 42.unshift() 前增unshift()可以向数组前添加一个或多个元素,并返回新...转载 2019-01-26 11:57:41 · 205 阅读 · 0 评论 -
JS 常用事件归纳
一、js中常用事件之onclick事件点击事件(onclick并不是js中的方法,onclick只是浏览器提供js的一个dom接口,让js可以操作dom,所以onclick大小写都是没问题的,比如HTML代码就不用区分大小写)。onclick通常在下列基本对象中产生:button(按钮对象)、checkbox(复选框)、radio(单选框)、reset buttons(重置按钮)、su...转载 2019-01-26 11:49:50 · 470 阅读 · 0 评论 -
原生 JS 获取节点方法总结
一、js获取子节点的方式1. 通过获取dom方式直接获取子节点其中test的父标签id的值,div为标签的名字。getElementsByTagName是一个方法。返回的是一个数组。在访问的时候要按数组的形式访问。 1 var a = document.getElementById("test").getElementsByTagName("div"); ...转载 2019-01-26 10:42:28 · 7615 阅读 · 0 评论 -
Mybatis的一级缓存和二级缓存的理解
一级缓存基于sqlSession默认开启,在操作数据库时需要构造SqlSession对象,在对象中有一个HashMap用于存储缓存数据。不同的SqlSession之间的缓存数据区域是互相不影响的。一级缓存的作用域是SqlSession范围的,当在同一个sqlSession中执行两次相同的sql语句时,第一次执行完毕会将数据库中查询的数据写到缓存(内存),第二次查询时会从缓存中获取数据,...转载 2019-01-26 09:43:03 · 218 阅读 · 0 评论