
java基础
勤勤恳恳王守田
知识改变命运
展开
-
Java的四种引用,强弱软虚,分别用到的场景
1,强引用 强引用是使用最多的引用,如果一个对象具有强引用,那么在该对象时不会被gc所回收的。 Object object = new Object(); //强引用当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。如果不使用时,要通过如下方式来弱化引用,如下: object = null /原创 2017-11-06 19:22:40 · 531 阅读 · 0 评论 -
Socket之TCP与UDP的编程实现
一、概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议。 TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流,TCP套接口是字节流套接口(stream socket)的一种。 UDP:用户数据报协议。UDP是一种无连接协议。UDP套接口是数据报套接口(datagram socke原创 2017-11-06 18:48:43 · 673 阅读 · 0 评论 -
Object有哪些公用方法?
public class ObjectDemo { public static void main(String[] args) { Object object = new Object(); /** * public final Class<?> getClass() * 返回此对象运行时类的 Class 对象。原创 2017-11-03 20:47:24 · 520 阅读 · 0 评论 -
全面了解equals与==的区别
最直接的区别: ‘==’:比较的是两个对象之间的地址是否相同,即是否为同一个对象。 ‘equals’:通常比较的是两个对象的值是否,关注的是值而不是地址。public static void main(String[] args) {原创 2017-11-03 20:29:59 · 371 阅读 · 0 评论 -
Switch能否用string做参数?
在JDK7以前,switch是不能够用String作为参数进行条件判断的,只能支持 byte、short、char、int或者其对应的封装类以及 enum 类型。但是在JDK之后,String作为参数是能够作为switch的参数,但是前提是你的jdk环境必须是JDK7以上的版本。原创 2017-11-03 19:46:48 · 4300 阅读 · 0 评论 -
Java九种基本数据类型和大小以及其封装类
在学习java的过程中必不可少的要接触到有关java基本数据类型,这也是在java基础课程中尤为重要的一个必须掌握的知识点。接下来我就将为大家介绍在java中的九种基本数据类型以及他们各自所占内存大小以及这些基本类型为了方便使用而对应的封装类:从上图中我们可以看到,java的九种基本类型都一一对应着一个包装类,其中除了Character和Integer以外,其他对应的基础类型都是将首字母大写后就是原创 2017-11-03 19:19:02 · 357 阅读 · 0 评论 -
HashMap和HashTable的区别
主要区别在于:线程安全性,同步(synchronization),以及速度。 线程安全性方面:HashMap是几乎等价于HashTable的,HashTable是比较老版本的,Jdk5以后提供了ConcurrentHashMap,用来替代HashMap,它比HashMap的扩展性更好。HashMap的迭代器是fail-fast迭代器,而HashTable的是enumerator迭代器,所以当线原创 2017-11-08 11:08:55 · 242 阅读 · 0 评论 -
Map、Set、List、Queue、Stack的特点与用法
Map是以键值对的形式存储(即:key-value),其中key是唯一的、不可重复的,value的值可以重复,当插入的值是key相同,后加进去的会将已有的进行覆盖。Map有几个具体的实现类,包括TreeMap和HashMap,其中TreeMap是有序的,HashMap是无序的。在运用Map的过程中,Map集合的key和value是可以单独抽取出来使用的,可以根据key来取得value的值。其中key原创 2017-11-08 11:06:29 · 549 阅读 · 0 评论 -
String、StringBuffer与StringBuilder的区别
String是字符串常量,StringBuffer和StringBuilder是字符串变量StringBuffer是同步的,线程安全的,执行效率较低,String是不同步的,是线程不安全的执行效率较高String重写了Object中的equals方法,StringBuffer和StringBuilder没有重写其中的方法。原创 2017-11-08 09:16:11 · 194 阅读 · 0 评论 -
List集合构造方法以及主要方法
package list;import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedList;import java.util.Vector;/** * List集合的子类特点 ArrayList: 构造方法: ArrayList()原创 2017-11-06 21:22:55 · 7584 阅读 · 0 评论 -
List集合存储字符串和自定义对象并遍历(for循环和迭代)
package list;import java.util.ArrayList;import java.util.Iterator;import java.util.List;/** * :List集合存储字符串并遍历?(迭代器和普通for) * @author wjddn * */public class ListDemo { public static void main(原创 2017-11-06 20:31:59 · 2042 阅读 · 0 评论 -
ArrayList、LinkedList、Vector的区别
一、同步性 ArrayList,LinkedList是不同步的,而Vestor是。所以如果要求线程安全的话,可以使用ArrayList或LinkedList,可以节省为同步而耗费开销。但在多线程的情况下,有时候就不得不使用Vector了。当然,也可以通过一些办法包装ArrayList,LinkedList,使他们也达到同步,但效率可能会有所降低。二、数据增长 ArrayList和Vecto原创 2017-11-06 20:01:56 · 257 阅读 · 0 评论 -
Hashcode的作用
稍微了解过Object类的同学都应该知道,在Object类方法中存在这么一个方法,那就是public native int hashCode(); 可以看到返回值是一个整形的值,这有什么作用呢? 首先我们先来了解下hashCode的特点: 1、HashCode的存在主要是为了查找的快捷性,HashCode是用来在散 列存储结构中确定对象的存储地址的 2、如果两个对象原创 2017-11-06 19:45:37 · 448 阅读 · 0 评论 -
Executors
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;/** * Executors 线程池学习原创 2018-01-18 15:23:11 · 443 阅读 · 0 评论