自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 问答 (2)
  • 收藏
  • 关注

原创 Access deny for user 'root'@'gateway'

问题:当使用root账号远程登陆mysql服务器的时候结果msyql服务器拒绝了登陆请求。通过上网查阅到,是由于root用户可能限定为本地登陆,远程主机被限制登陆。在mysql.user表中可以看到确实是这样的。解决方法:由于赋予root用户远程登陆可能不安全,因此新建了一个账号mmall,然后给它赋权所有主机都可以登陆。完成之后,使用mmall账号就可以实现远程...

2020-01-31 13:10:28 1956

转载 BIO、NIO、AIO

 IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。转自:https://blog.csdn.net/skiof007/article/details/52873421一、BIO     在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对...

2018-04-10 16:06:55 247

转载 java中String的intern、StringBuilder和new String

1.String s1 = “abc”和String s2 = new String(“abc”)的区别在执行String s1 = “abc”的时候,首先会在常量池中有没有abc这个字符串,如果有则直接返回该字符串的引用,否则就在常量池中创建一个abc的字符串并且返回该引用。在执行String s2 = new String("abc")的时候,我们先来看看new String()的源码Stri...

2018-03-29 11:37:27 1145

原创 今日头条3月24笔试题java实现

分析:采用BFS/*操作一: *  m = s; *  s =  s+s; *操作二: *s = s + m * *初始值:s=“a” m = s; * *现在给定一个正整数n *求最少的操作能够使s的长度为n *  * */public class Test2 { static class Node { int m; int s; int count; public Node(){ ...

2018-03-26 14:10:53 716

转载 java中创建子类对象时会不会创建父类对象

答案是:创建子类对象时不会创建父类对象。我们创建子类对象时,只是说创建了父类空间,并进行了初始化。如果说创建子类的时候就会创建它的父类,那内存空间中不都是Object类的对象吗?(想想java的设计师也不会这么做的)下面转自知乎作者:祖春雷链接:https://www.zhihu.com/question/51920553/answer/128761716来源:知乎这个问题主要涉及到java对象的...

2018-03-22 11:10:12 5570

转载 微服务和传统服务的区别

链接:https://www.zhihu.com/question/55511712/answer/270550136来源:知乎微服务:在软件开发的不同时期、阶段,对技术架构的理解、选择和应用都有着不一样的诉求。微服务架构是当前互联网业界的一个技术热点,它的特点也更符合我们的目标:根据业务模块划分服务种类。每个服务可以独立部署并且互相隔离。通过轻量的 API 调用服务。服务需要保证良好的高可用性。...

2018-03-21 11:27:33 7427

转载 java中实现多线程的4中方式

Java多线程实现方式主要有四种:继承Thread类、实现Runnable接口、实现Callable接口通过FutureTask包装器来创建Thread线程、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,后两种是带返回值的。 1、继承Thread类创建线程Thread类本质上是实现了Runnable接口的一个实例,...

2018-03-21 11:11:30 210

转载 b树和b+树

链接:https://www.zhihu.com/question/57466414/answer/182514854来源:知乎(1) B+树改进了B树, 让内结点只作索引使用, 去掉了其中指向data record的指针, 使得每个结点中能够存放更多的key, 因此能有更大的出度. 这有什么用? 这样就意味着存放同样多的key, 树的层高能进一步被压缩, 使得检索的时间更短. (2)当然了,由于...

2018-03-19 18:31:55 347

转载 mysql中的索引详解

在mysql中索引是存储引擎级的概念,不同的存储引擎有不同的索引方式。mysql中的MyISAM和 InnoDB两种存储引擎。MyISAM索引的实现:MyISAM引擎是用B+树来实现索引的,B+树的叶子节点的data域存放的是数据记录的地址,MyISAM采用的是非聚簇索引,这里主要是要和InnoDB的聚簇索引区别开来。InnoDB索引的实现:InnoDB引擎也是使用B+树来实现索引的。但是实现方式...

2018-03-19 16:39:46 347

转载 java中泛型的用法

什么是泛型呢?泛型就是参数化类型,例如,ArrayList类用一个类型参数来指出元素的类型。ArrayList<String> stringValues= new  ArrayList<String>();  这样在执行stringValues.add(100);的时候就会出现编译错误。因此可以保证程序在编译期不会出错后,程序在运行的时候也不会出现错误。在使用泛型之前,我们...

2018-03-19 15:17:21 457

原创 java反射机制的原理

什么是java的反射:1.在运行状态中,对于任何一个类,都能够知道这个类的所有方法和属性。2.对任意一个对象都能调用它的任何方法和属性。这种动态获取信息和动态调用一个对象的方法和属性的机制就是java反射。反射的作用:java程序可以加载一个运行时才得知名称的class,通过class的全限定名,利用java反射机制就可以获取该类的全部信息,可以动态的创建对象和编译。三、反射的原理JAVA语言编译...

2018-03-19 11:45:45 1171

转载 线程池ThreadPool

在一个多并发的系统中,合理使用线程池有三大好处:1.降低资源的消耗,可以重复利用一个线程执行不同的任务,减少了线程创建和销毁的时间。2.提高响应速度,当任务到达的时候,不用等待线程的创建,可以立即执行。3.提高线程的可管理性,线程是一个稀缺的资源,如果无限制的创建线程,就会耗尽系统的内存,降低系统的稳定性。因此,利用线程池对线程实现线程统一的调度和管理,提高系统的性能。2. 线程池的使用线程池的创...

2018-03-19 11:15:17 164

转载 ThreadLocal对象的用法

Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的ThreadLocal变量。以下代码展示了如何创建一个ThreadLocal变量:1private ThreadLocal myThreadLocal = new ThreadLocal();我们可以看到,通过这...

2018-03-19 10:56:37 1279

翻译 java面向对象的三个特征

封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对...

2018-03-19 10:17:50 266

原创 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 1964

原创 Map、Set、List是否有序

首先我们应该清楚这个概念:这里的有序和无序不是指集合中的排序,而是是否按照元素添加的顺序来存储对象。list是按照元素的添加顺序来存储对象的,因此是有序的。他的实现类ArrayList、LinkedList、Vector都是有序的。Map是无序的,它的存储结构是哈希表<key,value>键值对,map中插入元素是根据key计算出的哈希值来存储元素的,因此他不是按照元素的添加顺序来存储...

2018-03-19 09:35:24 78699 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 147

原创 java中ArrayList、LinkedList和Vector的区别

ArrayList、LinkedList和Vector都是实现了List接口。其中,ArrayList和Vector底层是用数组实现的,因此可以用序号下标来访问他们,查找的效率高,一般数组的大小比要插入的数据大数量要大。LinkedList的底层使用双向链表实现的,因此插入和删除的效率高。在多线程并发的时候,ArrayList和LinkedList是非线程安全的,并且是不同步的。Vector的所有...

2018-03-18 21:12:50 4505

转载 java中yield()和join()的用法

在java的多线程编程中,有可能会用到yield和join。在具体讲解yield和join之前,我们先来看看java中线程的优先权。线程的优先级:1.在没有指定线程的优先级的时候,线程都带有普通的优先级。2.线程的优先级可以分为1到10;10代表最高的优先级,1代表最低的优先级,普通优先级是5.3.优先级最高的线程在运行时给予优先,但不能保证线程启动后立刻就进入运行状态。4。与线程池中等待的线程相...

2018-03-18 19:11:36 5012 1

转载 java中wait和sleep的区别

wait是object中的方法,使用wait方法时要在同步代码块中,并且经常和notify和notifyAll一起使用,用于线程之间的通信。线程调用wait时,当前线程就会休眠并且释放锁,等待其他线程调用notify或者notifyAll来唤醒。sleep是Theard类中的静态方法,可以不在同步块中使用,用于线程休眠一段时间后自己醒来。线程调用sleep后不会释放锁,如果此时有其他的线程要获取该...

2018-03-18 10:19:31 213

转载 Object类有哪些公用的方法

Object是所有类的父类,任何类都默认继承Object。clone保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常equals在Object中与==是一样的,子类一般需要重写该方法hashCode该方法用于哈希查找,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Co...

2018-03-18 09:07:24 218

转载 面试中被问到的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 349

转载 java内存中的堆栈、堆、静态区、常量池

转自:http://www.cnblogs.com/protected/p/6419217.html程序运行时,有六个地方都可以保存数据:  1、 寄存器:这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部。然而,寄存器的数量十分有限,所以寄存器是根据需要由编译器分配。我们对此没有直接的控制权,也不可能在自己的程序里找到寄存器存在的任何踪迹。  2、 堆栈:存放基本类型的数据和...

2018-03-16 19:30:23 2448 1

转载 static、final、static final的区别

转自:http://blog.csdn.net/qq1623267754/article/details/361907151. final  final类不能被继承,没有子类,final类中的方法默认是final的final方法不能被子类的方法复盖,但可以被继承final成员变量表示常量,只能被赋值一次,赋值后不能再被改变final不能用于修饰构造方法private不能被子类方法覆盖,privat...

2018-03-16 19:10:55 22299 3

原创 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 260

原创 equals()和hashCode()的联系和区别

equals()和hashCode()都是在java中用于比较两个对象是否相等一致。那为什么有了equals()还要用hashCode()呢?因为一般情况下equals()(已经重写了)方法比较两个对象是否相等是比较复杂的,比较的效率低。hashCode()是根据哈希算法来计算出一个哈希值,用这个哈希值来比较两个对象是否相等,效率高。equals()比较相等的两个对象其hashCode()也一定相...

2018-03-15 23:09:57 157

原创 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 117

原创 split()方法详解

split()方法详解1.split()主要是用于对一个字符串进行分割成多个字符串数组。标准形式为String [] strings = str.split("");2.split()方法中括号中的参数可以为一个也可以为多个,每个参数之间用|隔开。并且每个参数之间要紧挨着|。如:String [] strings = string.split(" |,|\\?");这里有三个参数:空格、逗号、问号...

2018-01-03 21:12:00 99508

原创 java中的IO流

java中的IO流可以分为4各大类,其他的IO流都是直接或者间接的继承这4个抽象类。InputStream,OutputStream,Reader,Writer,分别对应的为字节的输入、输出流和字符的输入、输出流。

2017-11-05 23:23:08 235

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除