java基础
猿来你也在这
这个作者很懒,什么都没留下…
展开
-
java的守护线程与非守护线程(转)
最近重新研究Java基础知识,发现以前太多知识知识略略带过了,比较说Java的线程机制,在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) ,(PS:以前忽略了)。 估计学过Unix开发但是没有细致学习Java的同学们会疑惑了,操作系统里面是没有所谓的守护线程的概念,只有守护进程一说,但是Java语言机制是构建在JVM的基础之上的转载 2017-01-05 10:25:21 · 125 阅读 · 0 评论 -
深入理解Java中的迭代器
迭代器模式:就是提供一种方法对一个容器对象中的各个元素进行访问,而又不暴露该对象容器的内部细节。概述 Java集合框架的集合类,我们有时候称之为容器。容器的种类有很多种,比如ArrayList、LinkedList、HashSet...,每种容器都有自己的特点,ArrayList底层维护的是一个数组;LinkedList是链表结构的;HashSet依赖的是哈希表,每种容器都有自己特有的数...转载 2019-03-21 10:11:24 · 123 阅读 · 0 评论 -
Java总结篇系列:Java泛型
一. 泛型概念的提出(为什么需要泛型)?首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(String[] args) { 4 List list = new ArrayList(); 5 list.add("qqyumidi"); ...转载 2019-03-20 15:42:07 · 88 阅读 · 0 评论 -
解决spring boot redis序列化key-value乱码\xac\xed\x00\x05t\x00
本文转自:https://blog.csdn.net/ljj_9/article/details/79370027最近使用spring-data-redis RedisTemplate 操作redis时发现存储在redis中的key不是设置的string值,前面还多出了许多类似\xac\xed\x00\x05t\x00这种字符串,如下图第二个keyspring-data-redis的Red...转载 2018-10-16 15:24:01 · 1601 阅读 · 1 评论 -
乐观锁与悲观锁
乐观锁 乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库如果提供类似于write_condition机制的其实都是提供的乐观锁。 CAS便是乐观锁技术,当多个线程尝试使用CAS同时更新同一...转载 2018-04-25 14:04:35 · 124 阅读 · 0 评论 -
hashcode()和equals()的作用、区别、联系
介绍一、 hashCode()方法和equal()方法的作用其实一样,在Java里都是用来对比两个对象是否相等一致,那么equal()既然已经能实现对比的功能了,为什么还要hashCode()呢? 因为重写的equal()里一般比较的比较全面比较复杂,这样效率就比较低,而利用hashCode()进行对比,则只要生成一个hash值进行比较就可以了,效率很高转载 2018-04-24 11:32:53 · 124 阅读 · 0 评论 -
Java的三种代理模式(Spring动态代理对象)
Java的三种代理模式1.代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位转载 2018-03-21 19:06:50 · 629 阅读 · 0 评论 -
JDK自带工具keytool生成ssl证书
前言:因为公司项目客户要求使用HTTPS的方式来保证数据的安全,所以木有办法研究了下怎么生成ssl证书来使用https以保证数据安全。百度了不少资料,看到JAVA的JDK自带生成SSL证书的工具:keytool,外加看了同事的心得体会,自己总结了一下具体的使用方法和使用过程中发现的问题及解决办法。 1:什么是HTTPS?HTTPS其实是有两部分组成:HTTP转载 2018-03-30 16:20:14 · 181 阅读 · 0 评论 -
CXF+Spring+Tomcat开发webservice接口,并添加SSL双向认证
环境信息:CXF2.7 Spring3.1 tomcat6.0一、创建webservice接口 web.xml xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoca转载 2018-03-30 15:34:32 · 610 阅读 · 0 评论 -
如何充分利用多核CPU,计算很大的List中所有整数的和
引用前几天在网上看到一个淘宝的面试题:有一个很大的整数list,需要求这个list中所有整数的和,写一个可以充分利用多核CPU的代码,来计算结果。一:分析题目 从题中可以看到“很大的List”以及“充分利用多核CPU”,这就已经充分告诉我们要采用多线程(任务)进行编写。具体怎么做呢?大概的思路就是分割List,每一小块的List采用一个线程(任务)进行计算其和,最后等待所有的线转载 2018-03-19 15:20:11 · 385 阅读 · 0 评论 -
详解tomcat线程池原理及参数释义
tomcat线程池有如下参数: maxThreads, 最大线程数,tomcat能创建来处理请求的最大线程数 maxSpareTHreads, 最大空闲线程数,在最大空闲时间内活跃过,但现在处于空闲,若空闲时间大于最大空闲时 间,则回收,小于则继续存活,等待被调度。 minSpareTHreads,最小空闲线程数,无论如何都会存活的最小线程数转载 2018-03-16 19:30:40 · 157 阅读 · 0 评论 -
理解线程池的原理
2016年09月18日 17:45:31104391.关于线程池线程池的技术背景在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁转载 2018-03-16 17:54:44 · 86 阅读 · 0 评论 -
Java 值传递和对象传递详解
1、需要明白的概念: 堆和栈:Java中基本数据类型的值和对象的引用保存在栈中,具体对象值保存在堆中。传递原理: 一个方法传递的参数如果是基本数据类型,则是对具体值的拷贝;如果是对象数据类型,则是对对象引用地址值的拷贝,而非具体值拷贝。下面分析三种情况:①一个方法不能改变传入基本类型的参数值。 示例代码:public class Test2 { publi转载 2018-02-08 18:59:44 · 185 阅读 · 0 评论 -
Set检查是否为重复对象的策略
反思:为什么要先通过先检索hashcode是否相等呢?查看Hashset的底层源代码:它其实是调用HashMap,而HashMap底层是通过数组维护数据,你想想,如果你的数据是1000万条,每次添加了的时候,你都和所有的元素进行比较,那为了维护不重复,你插入的成本得有多高!!!!太可怕了,!!所以通过引入Hashcode,转换一下,把它作为下标,然后在检查一下这里面存的元素是否想等,用eq转载 2018-02-08 18:24:06 · 164 阅读 · 0 评论 -
Java常量池理解和经典总结
Java常量池理解和经典总结一.相关知识1. 什么是常量。第一种:是一个值,这个值本身,我们就叫做常量。整型常量:1024实型常量:1.024字符常量:'g' 'c' 'w'字符串常量:"gcw"逻辑常量:true false这只是我们平时我们的一个说法而已,比如数字1024,我们说它是一个int类型的常量。转载 2018-02-07 19:18:58 · 145 阅读 · 0 评论 -
java 常用集合list与Set、Map区别及适用场景总结
出自于:http://blog.csdn.net/qq_22118507/article/details/51576319 list与Set、Map区别及适用场景1、List,Set都是继承自Collection接口,Map则不是2、List特点:元素有放入顺序,元素可重复 ,Set特点:元素无放入顺序,元素不可重复,转载 2017-09-11 20:23:21 · 194 阅读 · 0 评论