JAVA
文章平均质量分 74
qq_41478279
这个作者很懒,什么都没留下…
展开
-
JAVA中的关键字
一.基础概念要弄懂关键字,字面意思关键!它是JAVA语言预先定义好的,有特别意义的一种标识符。当你在JAVA编辑器中写入了关键字时,它会变颜色,关键字表示一种数据类型或者表示程序的结构,不能用作变量名,方法名,类名,参数名,包名。二.JAVA中有哪些关键字?都代表着什么呢?JAVA中一共有50个关键字,下面都一一介绍一下分类:访问控制 :private protected ...原创 2018-11-22 23:48:35 · 618 阅读 · 0 评论 -
经典七大排序算法逐一攻破
排序算法说明1.排序的定义:对一序列对象根据某个关键字排序2.评价算法优劣的术语说明稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;**不稳定:**如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;**内排序:**所有排序操作都在内存中完成; 外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;时间复杂度: 一个算法执行所耗费...原创 2019-03-18 14:19:58 · 445 阅读 · 1 评论 -
Java虚拟机类的加载机制
一.类的生命周期类的生命周期从类加载到虚拟机中内存,到卸载出内存为止。二.类加载的过程类加载的全过程:加载——验证——准备——解析——初始化1.加载类的加载阶段就是由类加载器负责根据类的全限定名来读取该类的二进制字节码文件到JVM中,并存储在方法区中,在堆区中生成该类java.lang.Class对象,作为方法区这个类的各种数据访问的入口。链接阶段:链接阶段要做的是将加载到JVM中的...原创 2019-03-14 21:58:52 · 184 阅读 · 0 评论 -
Java线程池原理及实现
一.为什么要用线程池?在我们完成一个需要多个线程并发进行的任务时,我们可能会觉得那就多创建几个线程就好了,就像前面的多线程小球,一个线程负责一个小球的运动,这样实现起来会简单些,但是当线程完成一个任务时,就要销毁它,这样不断的创建销毁线程会造成很大的内存开销,其实执行任务只需要很短的时间,但创建和销毁他们会花费很大的时间,这样就降低了系统的效率,所以我们需要一个线程池,需要线程的时候就创建,但执...原创 2019-03-07 16:44:51 · 260 阅读 · 0 评论 -
面向对象三大特性——多态
Java中的多态就是对象的多态,可以分为两种类型:引用多态和方法多态一.引用多态父类的引用可以指向本类对象父类的引用可以指向子类的对象让我们用代码来解释,先创建一个父类Animal和子类Dog,在主函数中书写如下但是我们不能把子类的引用直接指向父类的对象,如下:为什么不能呢?用通俗点的话来解释,我们可以说狗是一种动物,但不能说动物是一种狗,这样就颠倒了属性的从属关系,当父类引用指向子...原创 2019-03-15 14:48:21 · 170 阅读 · 0 评论 -
Java实现线程同步的五种方法
一.使用synchronized关键字由于每个java对象都有一个内置锁,用synchronized修饰方法或者代码块时,内置锁会保护整个方法或代码块,要想执行这个方法或者代码块必须获得其内置锁,运行时会加上内置锁,当运行结束时,内置锁会打开。由于同步是一种高开销的工作,所以尽量减少同步的内容,只需同步代码块就可以。1.修饰方法public class Test implements Run...原创 2019-03-08 11:47:52 · 4656 阅读 · 0 评论 -
JavaI/O流重要方法及代码示例
再复习一下I/O流中类的继承关系一.字节流1.输入流:FileInputStream2.输出流:FileOutputStream示例代码import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOExcept...原创 2019-03-18 08:55:29 · 243 阅读 · 0 评论 -
全面学习JVM内存管理及GC机制(二)
一.虚拟机中的GC过程1.1为什么要分代回收?在一开始的时候,JVM的GC采用的就是标记-清除-压缩的算法进行回收内存,但是当分配的对象很多,对象的列表变大,扫描和移动的时间很长,反而内存回收会特别慢。然而,经过对java应用的分析,发现大部分对象的存活时间较短,下面的图可以看出java对象在内存中存活时间的统计:从上表中可以看出,存活时间长的对象只占一小部分,所以对堆中采取分代管理内存和分...原创 2019-03-11 20:19:51 · 130 阅读 · 0 评论 -
全面学习JVM内存管理及GC机制(一)
一.为什么要学习这些?Java GC(Garbage Collection垃圾回收机制)是Java不同C++/C的主要主要区别之一,作为Java开发者,随着GC机制的日益完善,不需要编写内存回收和垃圾清理的代码,不必担心内存溢出或者内存泄漏,这样大大降低了程序员开发时的难度,但是任何事物都是有利有弊的,虽然不必开发人员显示的分配内存和回收垃圾,但是会出现以下几点问题:1.会不知不觉浪费了很多内...原创 2019-03-09 22:09:16 · 335 阅读 · 0 评论 -
JAVA多线程实现弹球(最后改进为单线程)
前面我们讲了进程和线程的区别联系以及如何使创建使用线程,那这此就用线程来实现一个简单的弹球运动吧一.首先来用多线程实现先来理一下思路:我们要实现的是用多个线程来实现多个小球 的运动,也就是当我点击一下界面的时候就创建一个线程就来控制这个小球的运动。首先我们要设计一个简单的界面来实现小球运动;然后我们要创建一个小球类,实现画小球,小球运动以及小球之间的碰撞方法,最重要的一点是用这个小球类继承Th...原创 2018-11-27 14:58:03 · 913 阅读 · 0 评论 -
进程和线程异同辨析
一.进程和线程一个执行中的程序就是进程,进程就是一个被动程序被执行之后实体,现在的操作系统都有多个任务,一个进程去完成一个任务。进程cpu分配资源的基本单位,一个进程中会有多个顺序执行流,这时就需要线程来负责执行每一个执行流,进程中至少包含一个线程,进行中的线程共享进程被cpu分配的资源,因此说线程是cpu执行的基本单位。每个线程都拥有属于自己的独立寄存器以及栈,每个线程和进程中的其他线程共享进...原创 2018-11-26 22:48:10 · 205 阅读 · 0 评论 -
认识Java中的StringBuilder和StringBuffer
在Java中,除了可以使用 String 类来存储字符串,还可以使用 StringBuilder 类或 StringBuffer 类存储字符串,那么它们之间有什么区别呢?String 类具有是不可变性。如运行结果从运行结果中我们可以看到,程序运行时会额外创建一个对象,保存“helloworld”。当频繁操作字符串时,就会额外产生很多临时变量。使用StringBuilder 或 St...原创 2019-02-21 14:45:33 · 115 阅读 · 0 评论 -
JAVA类和对象
大家都知道Java是面向对象的,那对象,面向对象,类,这三者到底有着怎样的意义和联系呢?1.对象?有句话说万物皆对象,只要是你看得见摸得着的东西都是对象。2.面向对象和类?从字面意思,简单意思就是我们人朝着对象看去,那再变换一下,就是我们人关注这对象,那对于计算机来讲,就是计算机关注着具体事物的信息。好比生活中一个场景:高考毕业之后我最兴奋的是可以去手机店买手机啦!到了手机店,我和售货员...原创 2019-02-12 12:03:19 · 186 阅读 · 0 评论 -
面向对象的三大特性——封装
前面我们理解了什么是面向对象,今天来学习下面向对象有哪三大特性?当开始写Java代码变量没有用到任何修饰符的时候,可以在同包下的其他程序访问,但这样并不安全,当你想隐藏类的某些信息的时候,就要用到封装。1.封装的概念封装是将类的某些信息隐藏在类的内部,不允许其他程序直接访问,需要通过类提供的get和set方法来实现对隐藏信息的访问和操作。2.使用封装的好处a.只能通过规定的方法访问数据,...原创 2019-02-18 12:01:25 · 594 阅读 · 0 评论 -
面向对象三大特性——继承
前面学习了面向对象的第一大特性,今天来看一下最重要的第二大特性,下面由浅入深罗列继承学习中需要掌握的几点:1.继承的概念继承是类与类的一种关系,比如说,狗是一种动物,那么动物就是父类,狗就是子类,去继承别人的类是子类,被继承的类是父类,Java中的继承是单继承的,就像我们每个人都只有一个亲爸。2.继承的好处生活中,假如你有一个亿万富翁的爹,那你继承了他的遗产,就可以少走很多弯路,那再计算...原创 2019-02-19 12:08:05 · 122 阅读 · 0 评论 -
Java中equals和==区别
Java中最主要三块内存及其存储的数据类型栈——线程私有的,用来存放局部变量(对象引用,和基本数据类型)堆——程序共享的,对象实例(常量池也在堆中——常量池中存储带final的基础类型或String类型并且用常量表达式初始化的常量)非堆——存储类变量(Class对象)总结一下—:值类型存储在栈中吗,引用类型变量在栈中存放的是引用类型变量的地址,而对象实例存储在堆中总结equals和=...原创 2019-02-19 14:36:28 · 452 阅读 · 0 评论 -
Java异常处理和异常抛出
生活中的异常是指那些有异于常态,和正常情况不一样,有问题的状态,编程世界中的异常是指阻止当前方法或作用域继续执行的状态。比如,程序要打开一个不存的文件、网络连接中断、除零操作、操作数越界、装载一个不存在的类等情况。这些情况会使程序中断执行。这时异常处理机制就很重要了,它会以适当的方法让程序继续执行或者退出,并且能够保存用户的当前操作或者进行数据回滚,最后再把占用的资源释放掉。一.Java异常体系...原创 2019-02-21 13:11:44 · 9155 阅读 · 3 评论