java基础知识
文章平均质量分 58
hust_yfang
人生最幸福的是,做着自己喜欢的事情,又有钱赚。哈哈哈!!!本人对编程比较喜欢,现在还是一个刚入门的菜鸟。希望在今后的学习中能够了解各种知识,探索心中的蒙娜丽莎。加油吧,少年!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java中==和equals的区别
在java中==和equals都是来判断对象是否相等的,那么他们有什么区别呢?可以看到下面这个例子:public static void main(String[] args){ String s1=new String("aaa"); String s2=new String("aaa"); system.out.println(s1==s2); system.out.p...原创 2018-03-15 22:57:28 · 174 阅读 · 0 评论 -
java中hashMap和hashTable的区别
hashMap和hashTable的l联系和区别主要从存储结构和线程安全这两个方面来说。hashMap是用键值对来存放元素的,其中hashMap可以存储key=null的键值对(其实就是让key=null的哈希值为0)。hashMap是非线程安全的,它的方法没有实现synchronize。hashTable也是用键值对来存放元素的,其中hashTable不能存储key=null的键值对,hashT...原创 2018-03-19 09:54:18 · 2064 阅读 · 0 评论 -
java面向对象的三个特征
封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对...翻译 2018-03-19 10:17:50 · 336 阅读 · 0 评论 -
ThreadLocal对象的用法
Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的ThreadLocal变量。以下代码展示了如何创建一个ThreadLocal变量:1private ThreadLocal myThreadLocal = new ThreadLocal();我们可以看到,通过这...转载 2018-03-19 10:56:37 · 1420 阅读 · 0 评论 -
线程池ThreadPool
在一个多并发的系统中,合理使用线程池有三大好处:1.降低资源的消耗,可以重复利用一个线程执行不同的任务,减少了线程创建和销毁的时间。2.提高响应速度,当任务到达的时候,不用等待线程的创建,可以立即执行。3.提高线程的可管理性,线程是一个稀缺的资源,如果无限制的创建线程,就会耗尽系统的内存,降低系统的稳定性。因此,利用线程池对线程实现线程统一的调度和管理,提高系统的性能。2. 线程池的使用线程池的创...转载 2018-03-19 11:15:17 · 250 阅读 · 0 评论 -
java反射机制的原理
什么是java的反射:1.在运行状态中,对于任何一个类,都能够知道这个类的所有方法和属性。2.对任意一个对象都能调用它的任何方法和属性。这种动态获取信息和动态调用一个对象的方法和属性的机制就是java反射。反射的作用:java程序可以加载一个运行时才得知名称的class,通过class的全限定名,利用java反射机制就可以获取该类的全部信息,可以动态的创建对象和编译。三、反射的原理JAVA语言编译...原创 2018-03-19 11:45:45 · 1358 阅读 · 0 评论 -
java中泛型的用法
什么是泛型呢?泛型就是参数化类型,例如,ArrayList类用一个类型参数来指出元素的类型。ArrayList<String> stringValues= new ArrayList<String>(); 这样在执行stringValues.add(100);的时候就会出现编译错误。因此可以保证程序在编译期不会出错后,程序在运行的时候也不会出现错误。在使用泛型之前,我们...转载 2018-03-19 15:17:21 · 563 阅读 · 0 评论 -
java中实现多线程的4中方式
Java多线程实现方式主要有四种:继承Thread类、实现Runnable接口、实现Callable接口通过FutureTask包装器来创建Thread线程、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,后两种是带返回值的。 1、继承Thread类创建线程Thread类本质上是实现了Runnable接口的一个实例,...转载 2018-03-21 11:11:30 · 288 阅读 · 0 评论 -
java中创建子类对象时会不会创建父类对象
答案是:创建子类对象时不会创建父类对象。我们创建子类对象时,只是说创建了父类空间,并进行了初始化。如果说创建子类的时候就会创建它的父类,那内存空间中不都是Object类的对象吗?(想想java的设计师也不会这么做的)下面转自知乎作者:祖春雷链接:https://www.zhihu.com/question/51920553/answer/128761716来源:知乎这个问题主要涉及到java对象的...转载 2018-03-22 11:10:12 · 5947 阅读 · 0 评论 -
Map、Set、List是否有序
首先我们应该清楚这个概念:这里的有序和无序不是指集合中的排序,而是是否按照元素添加的顺序来存储对象。list是按照元素的添加顺序来存储对象的,因此是有序的。他的实现类ArrayList、LinkedList、Vector都是有序的。Map是无序的,它的存储结构是哈希表<key,value>键值对,map中插入元素是根据key计算出的哈希值来存储元素的,因此他不是按照元素的添加顺序来存储...原创 2018-03-19 09:35:24 · 79776 阅读 · 7 评论 -
String、StringBuilder和StringBuffer的区别
String、StringBuilder和StringBuffer三者的区别主要从线程安全和运行速度这两个方面考虑。在运行速度上,StringBuilder>StringBuffer>String这是因为,String是字符串常量,而StringBuilder和StringBuffer是字符串变量。String对象创建之后就不能改变了。1 String str="abc";2 Sys...转载 2018-03-18 21:26:27 · 245 阅读 · 0 评论 -
java中ArrayList、LinkedList和Vector的区别
ArrayList、LinkedList和Vector都是实现了List接口。其中,ArrayList和Vector底层是用数组实现的,因此可以用序号下标来访问他们,查找的效率高,一般数组的大小比要插入的数据大数量要大。LinkedList的底层使用双向链表实现的,因此插入和删除的效率高。在多线程并发的时候,ArrayList和LinkedList是非线程安全的,并且是不同步的。Vector的所有...原创 2018-03-18 21:12:50 · 4622 阅读 · 0 评论 -
equals()和hashCode()的联系和区别
equals()和hashCode()都是在java中用于比较两个对象是否相等一致。那为什么有了equals()还要用hashCode()呢?因为一般情况下equals()(已经重写了)方法比较两个对象是否相等是比较复杂的,比较的效率低。hashCode()是根据哈希算法来计算出一个哈希值,用这个哈希值来比较两个对象是否相等,效率高。equals()比较相等的两个对象其hashCode()也一定相...原创 2018-03-15 23:09:57 · 230 阅读 · 0 评论 -
java中值传递的问题
在java中只有值传递,没有地址传递。public static void change(String s){ s="ee"; 或s=new String("ff");}public static void main(String[] args){ String s1 = "aa"; system.out.println(s1); change(s1); sy...原创 2018-03-16 11:25:10 · 322 阅读 · 0 评论 -
static、final、static final的区别
转自:http://blog.youkuaiyun.com/qq1623267754/article/details/361907151. final final类不能被继承,没有子类,final类中的方法默认是final的final方法不能被子类的方法复盖,但可以被继承final成员变量表示常量,只能被赋值一次,赋值后不能再被改变final不能用于修饰构造方法private不能被子类方法覆盖,privat...转载 2018-03-16 19:10:55 · 22612 阅读 · 3 评论 -
java内存中的堆栈、堆、静态区、常量池
转自:http://www.cnblogs.com/protected/p/6419217.html程序运行时,有六个地方都可以保存数据: 1、 寄存器:这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部。然而,寄存器的数量十分有限,所以寄存器是根据需要由编译器分配。我们对此没有直接的控制权,也不可能在自己的程序里找到寄存器存在的任何踪迹。 2、 堆栈:存放基本类型的数据和...转载 2018-03-16 19:30:23 · 2526 阅读 · 1 评论 -
面试中被问到的java基础知识
J2SE基础:1. 九种基本数据类型的大小,以及他们的封装类。2. Switch能否用string做参数?3. equals与==的区别。4. Object有哪些公用方法?5. Java的四种引用,强弱软虚,用到的场景。6. Hashcode的作用。7. ArrayList、LinkedList、Vector的区别。8. String、StringBuffer与StringBuilder的区别。9...转载 2018-03-16 20:13:15 · 408 阅读 · 0 评论 -
Object类有哪些公用的方法
Object是所有类的父类,任何类都默认继承Object。clone保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常equals在Object中与==是一样的,子类一般需要重写该方法hashCode该方法用于哈希查找,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Co...转载 2018-03-18 09:07:24 · 273 阅读 · 0 评论 -
java中wait和sleep的区别
wait是object中的方法,使用wait方法时要在同步代码块中,并且经常和notify和notifyAll一起使用,用于线程之间的通信。线程调用wait时,当前线程就会休眠并且释放锁,等待其他线程调用notify或者notifyAll来唤醒。sleep是Theard类中的静态方法,可以不在同步块中使用,用于线程休眠一段时间后自己醒来。线程调用sleep后不会释放锁,如果此时有其他的线程要获取该...转载 2018-03-18 10:19:31 · 281 阅读 · 0 评论 -
java中yield()和join()的用法
在java的多线程编程中,有可能会用到yield和join。在具体讲解yield和join之前,我们先来看看java中线程的优先权。线程的优先级:1.在没有指定线程的优先级的时候,线程都带有普通的优先级。2.线程的优先级可以分为1到10;10代表最高的优先级,1代表最低的优先级,普通优先级是5.3.优先级最高的线程在运行时给予优先,但不能保证线程启动后立刻就进入运行状态。4。与线程池中等待的线程相...转载 2018-03-18 19:11:36 · 5165 阅读 · 1 评论 -
BIO、NIO、AIO
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。转自:https://blog.youkuaiyun.com/skiof007/article/details/52873421一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对...转载 2018-04-10 16:06:55 · 332 阅读 · 0 评论
分享