![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
idealemail
这个作者很懒,什么都没留下…
展开
-
SpringCloud源码解读--Eureka注册中心核心源码解读(2)-cache原理
本节讲一下Eureka服务端的缓存机制原创 2020-02-17 11:35:22 · 158 阅读 · 0 评论 -
SpringCloud源码解读--Eureka注册中心核心源码解读(1)-核心流程
核心类1.InstanceRegistry:注册表2.DiscoverClient:客户端3.Application:注册得应用,InstanceInfo:注册的应用实例4.PeerEurekaNode:每一个注册中心节点5.EurekaBootStrap:服务端启动类...原创 2020-02-16 20:18:39 · 429 阅读 · 0 评论 -
饮食计划项目结构图
该项目是实际上线项目,稍作更改,根据用户情况设定为期30天的饮食计划,用户上传每日三餐食物,饮食顾问根据每餐情况给予点评,指导每日饮食,达到减重目标.所用技术栈:springcloud,mysql,redis,pika,rocketmq,nginxpush,es等...原创 2020-02-08 09:04:03 · 846 阅读 · 0 评论 -
io模型,epoll,java的IO,netty
一.io模型:BIO,NIO,AIOIO分2阶段:1.准备数据即从外部到操作系统内存阶段(文件或网络)2.数据拷贝阶段,从操作系统内存拷贝到工作进程内存BIO:进程发起IO请求,操作系统去准备数据,同时阻塞进程,数据准备好,唤醒进程,由进程拷贝数据到程序内存NIO:进程发起IO请求,操作系统马上返回没数据,同时去准备数据,进程隔一段时间问一下数据是否准备好,数据准备好后,由进程...原创 2020-01-16 17:40:04 · 191 阅读 · 0 评论 -
ConcurrentHashMap核心(java8)
1.java7的ConcurrentHashMap采用分段锁,在初始化的时候指定并发level,生命周期内不能更改java8的ConcurrentHashMap采用CAS+分段锁,每个链表的头结点是一个锁,所以并发数随着数组size的增加而增加2.java8的count采用LongAdder的方式,分段计算,提高并发度3.resize的时候,java8采用多线程一起resize,提高速...原创 2020-01-16 16:46:59 · 170 阅读 · 0 评论 -
线程池核心流程和逻辑
1.new一个线程池,线程池7个参数含义:public ThreadPoolExecutor(int corePoolSize,//核心池大小 int maximumPoolSize,//最大线程数 long keepAliveTime,//空闲时间,大于空闲时间的线程销毁 ...原创 2020-01-16 15:24:05 · 182 阅读 · 0 评论 -
java的collections工具类
常用方法,多用才熟练:addAll(Collection c, T... elements)binarySearch(List list, T key,Comparator c)checkedCollection(Collection c,Class type)copy(List dest,List src)disjoint(Collecti原创 2016-12-29 10:50:27 · 238 阅读 · 0 评论 -
java对象和byte数组互转,直接拿去用
import java.io.*;import java.util.Optional;/** * Created by Jason on 2017/1/3. */public class ByteArrayUtils { public staticT> Optionalbyte[]> objectToBytes(T obj){ byte[] bytes = n原创 2017-01-03 13:58:12 · 8475 阅读 · 4 评论 -
单例模式的理解
单例模式gc就是单例设计套路:1.private static 的成员变量2.private的构造器3.public static 的获得成员变量的方法懒汉式:在获取方法里面实例化public static A getA(){if(a == null)a = new A();return a;}饿汉式:在加载的时候就实例化stat原创 2016-08-07 16:53:41 · 216 阅读 · 0 评论 -
关于多线程的理解
1.多线程程序:programe,静态的代码进程:progress,执行的程序线程:thread,一个进程中的多条执行路径进程:独享CPU,数据空间线程;共享数据空间,独享栈区和程序计数器,多个线程是一个线程组线程间共享信息更容易java程序中:main,gc,异常处理 至少3条线程java中多线程就是多条执行路径,每条路径都有自己独立的栈区,一条路径就原创 2016-08-07 16:51:50 · 350 阅读 · 0 评论 -
MD5保存密码方案代码
关于代码的解释文章见http://blog.csdn.net/idealemail/article/details/51519800package test1;import java.io.IOException;import java.sql.ResultSet;import java.sql.SQLException;import javax.servlet.Servlet原创 2016-05-27 21:37:29 · 473 阅读 · 0 评论 -
MD5初探及简单应用
信息安全的一次小作业,图片都没有了,不影响阅读,欢迎讨论MD5初探及简单应用 引题:1.做一个简单的登录功能,用户名和密码存到数据库去验证,现在的情况是,数据库存的是明文,如果有人获得这个明文,就可以登录账户,希望可以解决这个问题。2.网站经常说:我们不会保存您的密码,请放心,那么问题来了,不保存密码他怎么验证呢? 一、MD5是什么:Mes原创 2016-05-27 21:34:20 · 1529 阅读 · 0 评论 -
LeetCode 151 题
这道题的最主要是要搞清楚空串 Sting s = "";切割字符串的时候,当有2个空格的时候会切出来一个空串。这样字符串里有很多空串,去掉这些空串,之后的事情就是从后往前遍历字符串数组了public String reverseWords(String s) { String[] group = s.split(" "); StringBuilder sb = new StringBu原创 2016-04-19 22:51:58 · 564 阅读 · 0 评论 -
java实现并查集
java并查集并查集:主要就2个运算1.集合之间合并2.查看一个元素属于哪个结合原创 2016-05-14 12:04:31 · 470 阅读 · 0 评论 -
java实现计数排序
java实现计数排序欢迎讨论原创 2016-05-13 23:39:59 · 432 阅读 · 0 评论 -
java实现二叉搜索树(BST)相关操作
java实现二叉搜索树(BST)相关操作,研究了了关于java的一些东西,欢迎讨论原创 2016-05-13 17:17:49 · 431 阅读 · 0 评论 -
java实现二分查找
java实现二分查找,欢迎讨论原创 2016-05-13 11:11:58 · 364 阅读 · 0 评论 -
java实现选择排序
java实现选择排序,欢迎讨论原创 2016-05-13 11:06:50 · 352 阅读 · 0 评论 -
java实现插入排序,增加减少循环的功能
java实现插入排序,增加减少循环的功能,欢迎讨论原创 2016-05-13 11:03:56 · 466 阅读 · 0 评论 -
java的Arrays工具类
操作数组的类,多用才熟练,各种重载方法:asList(T... a)binarySearch(byte[] a, byte key)copyOf(byte[] original, int newLength)copyOfRange(boolean[] original, int from, int to)deepEquals(Object[] a1,原创 2016-12-29 10:55:26 · 276 阅读 · 0 评论 -
protected关键字
protected有一下特性:1. protected 访问控制符能被用于方法和成员变量。 2. 声明为protected的方法和成员变量能被同一个包里的所有类所访问,就像默认修饰符package一样。 3. 能被该类的子类所访问,子类可以和父类不在一个包中。 这样,当你想让一个类中的某个方法或成员变量在包中都可见,而且其子类也能访问(子类有可能和父原创 2017-01-13 17:46:32 · 512 阅读 · 0 评论 -
java源码-Boolean
1.Boolean可以获得常量TYPE,这是基本类型boolean的class对象,不同于Boolean的class对象Class b = Boolean.TYPE;Class b1 = Boolean.class;这两个是不一样的2.成员private final boolean value;3.Boolean的构造器public原创 2017-02-17 14:42:54 · 270 阅读 · 0 评论 -
java源码_ThreadLocal
每个Thread对象都有一个ThreadLocalMap对象,存储自己的ThreadLocal,存取ThreadLocal其实就是从ThreadLocalMap对象存取ThreadLocal1.重要成员变量,hashCode的生成,其实就是AtomicInteger增加private final int threadLocalHashCode = nextHashCode();//ThreadLo...原创 2018-05-24 17:12:29 · 137 阅读 · 0 评论 -
java源码_ThreadLocalMap
ThreadLocalMap是保存ThreadLocal的,每一个ThreadLocal类似HashMap的一个key-value映射采用hash+数组的方式存储,hash冲突后就放入下一个(开放寻址法,线性探测再散列)但ThreadLocalMap的entry不同于hashMap的entry,ThreadLocalMap的entry是WeakReference类型,只保存了value.把Thre...原创 2018-05-24 16:59:35 · 293 阅读 · 0 评论 -
java源码_Thread
1.重要的成员变量private volatile char name[];//线程名字private int priority;//优先权private boolean daemon = false;//是否守护线程private Runnable target;//运行目标private ThreadGroup group;//线程组2private ...原创 2018-05-24 14:19:37 · 320 阅读 · 0 评论 -
java源码_HashMap(二)
增删改查方法1.put,增,改public V put(K key, V value) { return putVal(hash(key), key, value, false, true);}public V putIfAbsent(K key, V value) { return putVal(hash(key), key, value, true, true);}fina...原创 2018-05-23 21:01:53 · 113 阅读 · 0 评论 -
java源码_HashMap(一)
哈希表采用数组+链表或红黑树的方式存储,查询效率高1.重要的成员变量/** * The default initial capacity - MUST be a power of two. */static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // 默认的数组容量/** * The load factor used when...原创 2018-05-22 17:35:38 · 172 阅读 · 0 评论 -
java源码_LinkedList(二)
1.先看下内部的增删改查方法,对外的方法都是建立在内部方法基础上的a.插入到头结点之前/** * Links e as first element. */private void linkFirst(E e) { final Node<E> f = first; final Node<E> newNode = new Node<>(null...原创 2018-05-21 15:59:30 · 130 阅读 · 0 评论 -
java源码_LinkedList(一)
LinkedList底层结构是双向链表,实现了List和Dqueue接口public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable1.底层是Node节...原创 2018-05-21 15:00:14 · 104 阅读 · 0 评论 -
java源码_ArrayList(三)
ArrayList其他方法1.forEach,通过fail-fast进行检测public void forEach(Consumer<? super E> action) { Objects.requireNonNull(action); final int expectedModCount = modCount; @SuppressWarnings("unch...原创 2018-05-21 14:11:49 · 144 阅读 · 0 评论 -
java源码_ArrayList(二)
接上文分析ArrayList核心方法1.作为动态数组,扩容方法至关重要a.确保最低容量的公共方法public void ensureCapacity(int minCapacity) { int minExpand = (elementData != DEFAULTCAPACITY_EMPTY_ELEMENTDATA) // any size if not default ...原创 2018-05-18 16:45:50 · 106 阅读 · 0 评论 -
java源码_ArrayList(一)
阅读ArrayList源码,学习到以下:1.ArrayList是动态数组,底层是数组,有以下核心成员变量a.存储元素的数组transient Object[] elementData;b.记录元素的个数private int size;c.初始容量private static final int DEFAULT_CAPACITY = 10;d.默认空数组,为了首次添加元素时候判断需要扩容多少用/*...原创 2018-05-17 14:54:39 · 114 阅读 · 0 评论 -
java源码-Objects
Objects作为工具类,弥补了Object方法的不足,值得学习,是很好的工具类1. private Objects() { throw new AssertionError("No java.util.Objects instances for you!"); }构造器私有化,而且抛出异常,工具类都应该有,防止生成没用的对象2.public sta原创 2017-02-24 10:45:12 · 330 阅读 · 0 评论 -
Java源码-Float
Float和Double的toString和parseFloat方法,最终实现是由java的下层 sun.misc实现的,所以暂时不做进一步研究调用了sun.misc.FloatingDecimal 的方法Float里的一个特殊的类变量public static final float NaN = 0.0f / 0.0f;表示不是一个数字,not a number原创 2017-02-24 10:19:48 · 314 阅读 · 0 评论 -
java源码-Integer
1.Integer也有一个缓存,从-128-vm配置的数,默认是127源码如下:int h = 127;String integerCacheHighPropValue = sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high");//从vm的属性中读highif (integerCacheHig原创 2017-02-23 14:44:42 · 467 阅读 · 0 评论 -
java实现冒泡排序,设立标志位,减少遍历趟数
java实现冒泡排序,设立标志位,减少遍历趟数,欢迎讨论原创 2016-05-13 11:02:15 · 1962 阅读 · 0 评论 -
java实现归并排序
java实现归并排序原创 2016-05-13 10:48:07 · 400 阅读 · 0 评论 -
java实现堆排序
java实现堆排序。关于java建堆的详细解释请见http://blog.csdn.net/idealemail/article/details/51382837原创 2016-05-13 10:47:06 · 240 阅读 · 0 评论 -
java语言程序设计第十版(Introduce to java) 课后习题 chapter6-26
java语言程序设计第十版(Introduce to java) 课后习题 chapter6-26自己纯手工,欢迎讨论原创 2016-03-21 19:57:52 · 917 阅读 · 0 评论 -
java语言程序设计第十版(Introduce to java) 课后习题 chapter6-25
java语言程序设计第十版(Introduce to java) 课后习题 chapter6-25自己纯手工,欢迎讨论原创 2016-03-21 19:56:16 · 849 阅读 · 0 评论