java
lusasky
这个作者很懒,什么都没留下…
展开
-
补码
二进制形式:就是0和1组成的串,例如数字3的二进制形式是11,数字-9的二进制形式是11001。补数:初中时我们学过互补角,两个角加起来等于180度,则称两个角互补。在日常生活中,将某物体顺时针旋转270度和逆时针旋转90度能达到同样的效果,把时钟里的分钟顺时针调整40分钟和逆时针调整20分钟,分针最后的位置是一样的。这时270是90的补数,90也是270的补数;40和20也同理。那么计算...原创 2018-10-22 10:03:35 · 1150 阅读 · 0 评论 -
java网络编程:Socket详解
什么是TCP/IP、UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。 UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是属于TCP/IP协议族中的一种。 ...原创 2019-01-17 21:24:55 · 453 阅读 · 0 评论 -
泛型上下界、通配符介绍
<? extends T>和<? super T>的英文Java的泛型中的“通配符(通配符)”和“边界(边界)”的概念。<?扩展T>:是指 “上界通配符(Upper Bounds Wildcards)” <?super T>:是指 “下界通配符(Lower Bounds Wildcards)”为什么要用通配符和边界?使用泛型的过程中,...原创 2018-12-03 17:36:15 · 681 阅读 · 0 评论 -
从volatile分析i++和++i非原子性问题
目录1、可见性(Visibility)2、原子性(Atomicity)3、Java内存模型的抽象结构( JMM )4、volatile 5、 多线程下的i++问题5、自定义实现i++原子操作5.1 关于Java并发包的介绍 5.2 使用循环CAS,来实现i++的原子性操作5.3、使用锁机制,实现i++原子操作5.4 使用synchronized,实现i...转载 2018-12-05 14:18:05 · 2349 阅读 · 1 评论 -
Java中的hashCode() 和 equals()
一、 equals() 的作用equals() 的作用是 用来判断两个对象是否相等。equals() 定义在JDK的Object.java中。通过判断两个对象的地址是否相等(即,是否是同一个对象)来区分它们是否相等。源码如下:public boolean equals(Object obj) { return (this == obj);}既然Object.jav...原创 2018-12-04 15:00:17 · 600 阅读 · 0 评论 -
java中Comparable和Comparator介绍
Comparable和Comparator接口都是为了对类进行比较,众所周知,诸如Integer,double等基本数据类型,java可以对他们进行比较,而对于类的比较,需要人工定义比较用到的字段比较逻辑。一、Comparable简介 Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过...原创 2018-12-04 13:54:48 · 103 阅读 · 0 评论 -
自动装箱与拆箱
Java包装类、拆箱和装箱详解虽然 Java 语言是典型的面向对象编程语言,但其中的八种基本数据类型并不支持面向对象编程,基本类型的数据不具备“对象”的特性——不携带属性、没有方法可调用。 沿用它们只是为了迎合人类根深蒂固的习惯,并的确能简单、有效地进行常规数据处理。这种借助于非面向对象技术的做法有时也会带来不便,比如引用类型数据均继承了 Object 类的特性,要转换为 String 类型...原创 2018-11-26 15:15:18 · 154 阅读 · 0 评论 -
java 泛型详解
对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。本文参考java 泛型详解、Java中的泛型方法、 java泛型详解1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方...原创 2018-11-26 11:19:57 · 135 阅读 · 0 评论 -
HashMap底层原理及JDK8后的算法改进
前言:jdk 1.8之前,hasmap内部是由数组+链表来实现的;而jdk 1.8之后,对hashmap做了优化,对于链表长度超过8的链表将转储为红黑树,即采用数组+链表+红黑树。jdk1.8对于HashMap碰撞处理的优化-引入红黑树。 在2014年,jdk1.8发布。Java8的HashMap对之前做了较大的优化,其中最重要的一个优化就是桶中的元素不再唯一按照链表组合,也可以使用红...原创 2018-11-20 15:16:14 · 661 阅读 · 0 评论 -
UML类图几种关系的总结
在UML类图中,常见的有以下几种关系: 泛化(Generalization) 实现(Realization) 关联(Association) 聚合(Aggregation) 组合(Composition) 依赖(Dependency) 1. 泛化(Generalization) 【泛化关系】:是一种...转载 2018-11-07 14:31:11 · 770 阅读 · 0 评论 -
java动态代理原理
一、代理的概念 动态代理技术是整个java技术中最重要的一个技术,它是学习java框架的基础,不会动态代理技术,那么在学习Spring这些框架时是学不明白的。 动态代理技术就是用来产生一个对象的代理对象的。在开发中为什么需要为一个对象产生代理对象呢? 举一个现实生活中的例子:歌星或者明星都有一个自己的经纪人,这个经纪人就是他们的代理人,当我们需要找明星表演时,不能直接找到该明星,只...原创 2018-10-24 17:48:52 · 5420 阅读 · 1 评论 -
java面试: 多线程
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么...原创 2019-01-21 20:00:46 · 166 阅读 · 0 评论