![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java学习笔记
qq_32458133
这个作者很懒,什么都没留下…
展开
-
jdk和jre
学习笔记:jdk和jre详情jdk与jre的区别为什么Sun要让JDK安装两套相同的JRE?如果一台电脑安装两套以上的JRE,谁来决定呢?详情JRE是Java Runtime Enviroment,是指Java程序的运行环境,是面向Java程序的使用者,而不是开发者。如果你仅下载并安装了JRE,那么你的系统只能运行Java程序。JRE是运行Java程序所必须环境的集合,包含JVM标准实现及 J...原创 2019-04-10 15:54:21 · 411 阅读 · 0 评论 -
学习笔记:synchronized
定义synchronized是java中的一个关键字,是Java语言内置的特性。synchronized的使用主要有2种:同步方法和同步代码块。使用synchronized需要明确的几个问题:无论synchronized关键字加在方法上还是对象上,它取得的锁都是对象,而不是把一段代码或函数当作锁――而且同步方法很可能还会被其他线程的对象访问。每个对象只有一个锁(lock)与之相关联。实...原创 2019-04-11 11:05:23 · 128 阅读 · 0 评论 -
学习笔记:sleep和waite的区别
调用sleep方法的线程不会释放对象锁,其他线程依然无法访问这个对象调用wait() 方法会释放对象锁其他线程能够访问,可以通过notify,notifyAll方法来唤醒等待的线程...原创 2019-04-11 11:08:16 · 284 阅读 · 0 评论 -
学习笔记:Java位运算符
“&” : 对运算符两侧以二进制表达式的操作符按位分别进行‘与’运算。以bit为单位“|” : 对运算符两侧以二进制表达式的操作符按位分别进行‘或’运算。以bit为单位“^” : 对运算符两侧以二进制表达式的操作符按位分别进行‘异或’运算。以bit为单位“~” : ‘取反’运算符的作用是将各位数字取反“>>” : ‘左移’运算符,就是把数转换为二...原创 2019-04-11 11:11:26 · 105 阅读 · 0 评论 -
学习笔记:Java取整问题
Math.floor() 表示向下取整,返回double类型(floor—地板)例如:Math.floor(-4.2) = -5.0Math.ceil() 表示向上取整,返回double类型(ceil—天花板)例如:Math.ceil(5.6) = 6.0Math.round() 表示 四舍五入,返回int类型例如:Math.round(-4.6) = -5...原创 2019-04-11 11:13:31 · 216 阅读 · 0 评论 -
Java集合 Set(集)、List(列表)、Map(映射)
提到集合之前,先说说数组Array和集合的区别:数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型)JAVA集合可以存储和操作数目不固定的一组数据。若程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用容器类库,array不适用。 注意:使用相应的toArray()和Arrays.asList()方法可以相互转换。Collection接口...原创 2019-04-11 11:28:19 · 335 阅读 · 0 评论 -
学习笔记:流(Stream)
定义:流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以“流”的方式进行。设备可以是文件,网络,内存等。流具有方向性,至于是输入流还是输出流则是一个相对的概念,一般以程序为参考,如果数据的流向是程序至设备,我们成为输出流,反之我们称为输入流。可以将流想象成一个“水流管道”,水流就在这管道中形成了,自然就出现了方向的概念。可以从不同的角度对流进行分类:1...原创 2019-04-11 13:45:52 · 141 阅读 · 0 评论 -
学习笔记:IO和NIO
IO是面向流的,NIO是面向缓冲区的。IO面向流意味着从流中读取一个或者多个字节时,没有被缓存在任何地方,是以,不能前后移动流中的数据NIO则是将数据读取到一个缓冲区中,可以将数据在缓冲区前后移动,增加了处理过程的灵活性,但是会需要检查是否该缓冲区包含需要处理的数据,也需要确保在更多的数据读入缓冲区时,不会覆盖未处理的数据。IO的各种流是阻塞的,NIO是非阻塞模式IO的各种流是阻塞...原创 2019-04-12 10:06:44 · 139 阅读 · 0 评论 -
学习笔记:Java设计模式之单例模式
定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。类型:创建类模式单例模式根据实例化对象时机的不同分为两种:一种是饿汉式单例,一种是懒汉式单例。饿汉式单例在单例类被加载时候,就实例化一个对象交给自己的引用;而懒汉式在调用取得实例方法的时候才会实例化对象。代码如下:饿汉式单例(线程安全)//饿汉式单例类,在类初始化时,已经自行实例化public class Single...原创 2019-04-12 11:08:14 · 163 阅读 · 0 评论 -
学习笔记:Java设计模式之工厂方法模式
定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类类型:创建类模式工厂方法模式代码interface IProduct { public void productMethod();}class Product implements IProduct { public void productMethod() { ...原创 2019-04-12 13:40:24 · 91 阅读 · 0 评论 -
学习笔记:Java设计模式之抽象工厂模式
定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。类型:创建类模式抽象工厂模式代码interface IProduct1 { public void show();}interface IProduct2 { public void show();}class Product1 implements IProduct1 { publi...原创 2019-04-12 13:40:29 · 175 阅读 · 0 评论 -
学习笔记:Java中的final关键字
修饰类:当用final修饰一个类时,表明这个类不能被继承。final类中的所有成员方法都会被隐式地指定为final方法。修饰方法:使用final方法的原因原因是把方法锁定,以防任何继承类修改它的含义。只有在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的。修饰变量:对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在...原创 2019-08-12 14:19:25 · 153 阅读 · 0 评论 -
学习笔记:线程、进程
线程进程的区别线程是cpu分配和调度的基本单位进程是资源分配和调度的基本单位线程是指进程中的一个执行单元,是进程内的可调度实体进程至少有一个线程,同一个进程内的线程共享进程的资源二者都可以并发执行什么是线程安全当多个线程访问同一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替运行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获取正确...原创 2019-04-11 10:57:51 · 140 阅读 · 0 评论 -
学习笔记:Exception
检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略,从程序语法角度来讲是必须进行处理的异常,如果不处理,编译不通过。运行时异常: 运行时异常都是 RuntimeException 类及其子类异常,如 NullPointerException、IndexOutOfBoundsExcepti...原创 2019-04-11 10:53:59 · 152 阅读 · 0 评论 -
Java三大特性
学习笔记:Java的三大特性封装——把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承——可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。多态——是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子...原创 2019-04-10 16:21:10 · 150 阅读 · 0 评论 -
学习笔记:Java中的 equals 和 ==
学习笔记:Java中的 equals 和 ==对于==,如果作用于基本数据类型的变量,则直接比较其存储的“值”是否相等;如果作用于引用类型的变量,则比较的是所指向的对象的地址。除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false对于equals方法,如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;诸如String、Date...原创 2019-04-10 19:14:56 · 94 阅读 · 0 评论 -
学习笔记:String、StringBuffer、StringBuilder
学习笔记:String、StringBuffer、StringBuilder在运行方面速度上,StringBuilder > StringBuffer > String在线程安全上,StringBuilder是线程不安全的,StringBuffer是线程安全的String:适用于少量的字符串操作的情况StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况St...原创 2019-04-10 19:18:53 · 89 阅读 · 0 评论 -
学习笔记:String和new String
学习笔记:String和new StringString s = new String(“xyz”);创建了两个对象只要是new,都要重新分配堆空间。String s 是在栈中创建了一个变量,new String(“xyz”)是在堆里创建了一个对象并被s引用到。String s = “xyz”;要看常量池里有没有”xyz”,如果有直接引用,如果没有则创建一个对象再引用。Str...原创 2019-04-10 19:22:42 · 171 阅读 · 0 评论 -
学习笔记:接口和抽象类的区别
抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。抽象类要被子类继承,接口要被类实现。接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类...原创 2019-04-10 19:34:30 · 126 阅读 · 0 评论 -
学习笔记:基本数据类型和引用数据类型的区别
基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上。引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。当使用基本数据类型作为方法的形参时,在方法体中对形参的修改不会影响到实参的数值。当使用引用数据类型作为方法的形参时,若在方法体中修改形参指向的数据内容,则会对实参变量的数值产生影响,因...原创 2019-04-10 19:36:32 · 188 阅读 · 0 评论 -
学习笔记:java的重写和重载
重载(Overloading):方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同、可以有不同的访问修饰符、可以抛出不同的异常。重写(Overriding):如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写。重写的时候,子类中的方法与父类中的某...原创 2019-04-10 19:40:04 · 89 阅读 · 0 评论 -
学习笔记:jsp和servlet区别和联系
jsp和servlet区别和联系Jsp经编译后就变成了Servlet。(Jsp的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将Jsp的代码编译成JVM能够识别的java类)Jsp更擅长表现于页面显示,servlet更擅长于逻辑控制。Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletReauest对象,HttpServl...原创 2019-04-10 19:42:14 · 293 阅读 · 0 评论 -
学习笔记:Java中的native关键字
native关键字native是用在类的method前面,表示这个method不是用Java实现的。使用native关键字说明这个方法是原生函数,也就是这个方法是用C/C++语言实现的,并且被编译成了DLL,由Java去调用。native的意思就是通知操作系统,这个函数你必须给我实现,因为我要使用。所以native关键字的函数都是操作系统实现的,Java只能调用。Java要实现对底层的控...原创 2019-04-11 10:42:37 · 155 阅读 · 0 评论 -
学习笔记:Java中的static关键字
static方法static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。但是要注意的是,虽然在静态方法中不能访问非静态成员方法和非静态成员变...转载 2019-04-11 10:44:11 · 240 阅读 · 0 评论 -
学习笔记:Java中的abstract关键字
abstract关键字· 采用 abstract 方法的类本来就是抽象类,并且必须声明为 abstract。· abstract 类不能实例化。· 仅当 abstract 类的子类实现其超类的所有 abstract 方法时,才能实例化 abstract 类的子类。这种类称为具体类,以区别于 abstract 类。· 如果 abstract 类的子类没有实现其超类的所有 abstract 方...原创 2019-04-11 10:50:14 · 171 阅读 · 0 评论 -
Redis介绍
定义redis是一种支持Key-Value等多种数据结构的存储系统。可用于缓存,事件发布或订阅,高速队列等场景。该数据库使用ANSI C语言编写,支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存,可持久化。为什么使用可以很好解决应用服务器的cpu和内存压力减少io的读操作,减轻io的压力关系型数据库的扩展性不强,难以改变表结构nosql数据库没有关联关系...原创 2019-09-06 18:59:43 · 157 阅读 · 0 评论