- 博客(28)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注

原创 Java基本知识
Java的多态多态是面向对象语言的三大特性之一。多态主要有两种形式,一种是编译时多态,另一种是运行时多态。 编译时多态的实现就是对同名方法的重载(Overload)。编译器会根据同名方法的形参个数,形参类型,以达到在编译时就能区分不同的方法。 运行时多态的实现就是对方法的重写(Override)。子类继承父类并重写了父类的某些非静态方法,然后把子类对象赋值给父类引用,父类引用在调用方法时并
2017-11-05 11:16:12
338

原创 java synchronized关键字
synchronized关键字用于多线程同步,其具有以下作用: 1. 确保线程互斥的访问同步代码 2. 保证共享变量的修改能够及时可见 3. 有效解决重排序问题其主要有三种用法: 1. 修饰普通方法 2. 修饰静态方法 3. 修饰代码块测试代码:public class C{ private static String string="static string";
2017-09-23 18:14:12
471
原创 mysql5.7 zip压缩包windows下安装教程
一.下载mysql 下载地址:https://dev.mysql.com/downloads/mysql/二.环境配置解压:将下载的zip包解压到你想要放置的位置,我的是:E:\study\mysql-5.7.15-winx64新建配置文件my.ini:在E:\study\mysql-5.7.15-winx64路径下有一个my-default.ini文件,该文件是mysql
2018-01-11 17:01:55
5601
原创 anaconda 安装scrapy
安装scrapy的方法有很多,可以使用pywin32,这里展示使用anaconda来安装scrapy。anaconda一个集成多个python包的管理工具,使用起来相当方便。一.安装anaconda访问https://www.anaconda.com/download/来下载相对于的anaconda版本。 注意: 1. anaconda是自带python的,所以使用anaconda即可使用pyt
2018-01-02 16:28:09
7948
5
原创 Redis 持久化技术
前言redis是一个key-value键值对数据库,也是一个内存型数据库。所以,当内存断电后,数据就会全部消失。redis提供了两种持久化方式来保存数据,一种是RDB,一种是AOF。RDB方式RDB方式其实就是以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。它可以通过配置设置自动做快照持久化的方式。我们可以配置redis在n秒内如果超过m个key被修改就自动做快照,下面
2017-10-16 11:30:07
290
转载 Redis 快速入门
Redis简介Redis是一款开源的、高性能的键-值存储(key-value store)。它常被称作是一款数据结构服务器(data structure server)。Redis的键值可以包括字符串(strings)类型,同时它还包括哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。 对于这些数据类型,你可以执行原子操作。例如:对字符串进行
2017-10-16 10:29:59
276
原创 mysql 索引介绍
在大数据表里,同一条mysql语句,使用索引与不使用索引是具有极大的区别。索引作用相当于书的目录,可以加快搜索的速度。但是目录是需要用额外的纸张来保存,建立索引也是需要额外的空间。所以过多的索引可能会导致索引文件比数据文件还要庞大。索引是可以加快,但是要慎用。下面介绍mysql的几种索引。1. 普通索引最基本的索引,创建方式有://直接创建索引CREATE INDEX index
2017-10-08 10:46:42
300
原创 mysql 字段类型选择
mysql 字段类型介绍整数类型: 类型 占用字节 数值范围 tinyint 1 -128~127/0~255 smallint 2 -32768~32767/0~65535 mediumint 3 -8388608~8388607/0~16777215 int/integer 4 -2147483648~2
2017-09-29 11:21:58
915
原创 计算机网络--数据链路层
数据链路层解决三个重要问题:封装成帧,差错检测,透明传输。数据链路层所用的硬件:网卡(网络适配器)封装成帧数据链路层是以帧为单位进行传输和处理的。所以必须将上层的IP数据报在头部和尾部加上信息,封装成帧。在接收帧时,有个必须解决的问题是,如何识别每一个帧的开始和结束,即进行帧定界。首部和尾部的作用之一就是进行帧定界,还有一些控制信息。 每一种链路层协议都规定了帧的数据部分长度的上限,即最大传送单元
2017-09-25 20:47:45
513
原创 计算机网络--物理层基本概念
码元:在使用时间域的波形表示数字信号时,代表不同离散数值的基本波形就成为码元。它是承载信息的基本信号单位。比特是信息量的单位。常用的编码方式: 不归零制:正电平为,负电平为0 曼彻斯特编码:位周期中心的上跳代表0,下跳代表1 差分(微分)曼彻斯特编码:在每一位的中心都有跳变。位开始边界有跳变代表0,没有跳变代表1.奈氏准则:在假定的理想条件下,为了避免码间串扰,码元传输速率上限:理想低通信
2017-09-25 19:19:10
703
原创 Java volatile关键字
Java内存模型的三大特性Java内存模型有三大特性:原子性,可见性,有序性。 1. 原子性:表示该操作不可再分。例如简单的a++操作,这不是一个原子性操作。因为内部是a=a+1,再返回原来的a,这是一个可以分割的操作。在多线程中,非原子性操作会带来线程安全问题。这要我们使用同步技术,变成一个原子性操作。Java提供的原子操作类有AtomInteger,AtomicReference等。 2.
2017-09-25 09:30:31
230
原创 java 线程池底层原理
newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 源码如下:public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
2017-09-22 17:18:46
1745
原创 Java自带线程池基本介绍
Java线程池目前,Java提供了7个线程池给我们使用,各有各的特点。 1. newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 2. newFixedThreadPool:创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 3. newScheduledThreadPool:创建一个定长线程
2017-09-22 14:52:23
320
转载 Spring事务管理
1 初步理解理解事务之前,先讲一个你日常生活中最常干的事:取钱。 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱;然后ATM出1000元钱。这两个步骤必须是要么都执行要么都不执行。如果银行卡扣除了1000块但是ATM出钱失败的话,你将会损失1000元;如果银行卡扣钱失败但是ATM却出了1000块,那么银行将损失1000元。所以,如果一个步骤成功另一个步骤
2017-09-21 09:42:12
312
原创 spring的依赖注入方式
在过去,我们总是自己用new关键字新建一个对象。当两个类存在依赖关系时,我们必须考虑new的顺序,来保证正确性。这样一方面使得我们的设计很麻烦,另一方面使得两个类的依赖关系明显,增加了耦合度。为此,我们使用了Spring。Spring就相当于一个大容器,我们需要某个类时,就只需从里面获取,不用我们主动去new。两个类之间的依赖关系,Spring也会帮我们解决。这样可以降低耦合度,也使得设计更加方便。
2017-09-20 16:48:27
258
转载 springmvc常用注解标签详解
原文出处:http://www.cnblogs.com/leskang/p/5445698.html1、@Controller 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。在SpringMVC 中提供了一个非常简便
2017-09-20 10:37:50
397
原创 spring框架需要的jar包
spring的7大模块 Spring Core: Core封装包是框架的最基础部分,提供IOC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。 Spring Context: 构建于Core封装包基础上的 Context封装包,提供了一种框架式的对象访问方
2017-09-19 11:07:27
1271
原创 SpringMVC与Struct2的区别
机制:spring mvc的入口是servlet,而struts2是filter性能:spring会稍微比struts快。 &nbps;spring mvc是基于方法的设计 ,而sturts是基于类 ,每次发一次请求都会实例一个action,每个action都会被注入属性,而spring基于方法,粒度更细。spring3 mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数
2017-09-19 10:15:12
1403
转载 java内存泄漏的定位与分析
1、为什么会发生内存泄漏 java 如何检测内在泄漏呢?我们需要一些工具进行检测,并发现内存泄漏问题,不然很容易发生down机问题。 编写java程序最为方便的地方就是我们不需要管理内存的分配和释放,一切由jvm来进行处理,当java对象不再被应用时,等到堆内存不够用时,jvm会进行垃圾回收,清除这些对象占用的堆内存空间,如果对象一直被应用,jvm无法对其进行回收,创建新的对象时,无法从Heap
2017-09-18 20:23:59
147
原创 Java内存模型以及gc算法
1.java内存模型 JVM堆内存分为2块:Permanent Space 和 Heap Space。 Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。1) 持久代: 用于存放类信息,静态类型数据,final修饰的变量,常量,方法,如 Java Class, Method
2017-09-18 15:00:49
2845
原创 Java 父类与子类初始化块,静态块,构造函数执行顺序
被static修饰的变量,块,方法都是会在类被加载的时候就会执行,而且是先与构造函数执行。public class A { { System.out.println("A 初始化块"); } static{ System.out.println("A 静态块"); } private static Integer integer=getInt
2017-09-18 11:07:59
933
原创 class.forName和Classloader的区别
class.forName是把类的.class文件加载都jvm中,然后还会对类进行解析,执行类的static块和为staic变量赋值。classloader只是加载.class文件到jvm,并不会执行static块,直到进行newInstance()时,才会执行static块。public class A { { System.out.println("A 初始化块");
2017-09-18 10:43:40
568
原创 Java final关键字
1.final变量用final关键字修饰的变量表示该变量不能改变(对于基本类型及其封装类的变量来说,表示它的值不能改变;对于其他引用类型变量来说,表示其引用指向不能改变,但其指向的内容可以改变。)2.final方法
2017-09-15 17:23:12
257
原创 存储管理
1.程序的链接和装入1)源程序装入主存的步骤:编译:由编译程序(Compiler)将用户源代码编译成若干目标模块;链接:由链接程序(Linker)将编译后形成的一组目标模块以及它们所需要的库函数链接在一起,形成一个完整的装入模块;装入:由装入程序(Loader)将装入模块装入主存2)程序的链接方式:静态链接:在程序运行前,将各个目标模块以及所需的库函数链
2017-09-05 15:15:17
319
原创 作业管理
1. 批处理作业调度阶段a) 高级调度:也称为作业调度。高级调度按照系统预定的作业调度算法,决定把后备作业对了中的部分满足其资源要求的作业从辅存调入内存,为装入的作业创建新的进程并为其分配所需资源。b) 低级调度:把从内存中的进程按照CPU调度算法,选择就绪队列中的进程获取CPU。c) 中级调度:又称为平衡负载调度,它决定主存中所容纳的进程个数。中级调度根
2017-09-05 15:03:17
802
原创 CPU管理
1.进程调度算法先来先服务算法按照进程进入就绪队列的先后次序选择可以占用处理器的进程。该算法很少单独使用,通常会配合其他算法一起使用优先数调度算法每一个进程都有一个优先数,进程调度总是让具有最高优先数的进程先使用处理器。对于相同优先数的进程,可以按照先来先服务次序分配处理器。优先数的分配有两种:静态法和动态法。静态法:根据进程的静态特性,在进程开始执行之前就确定它们的优
2017-08-25 15:22:51
592
空空如也
mysql 如何保存多个长度不一的电话号码
2017-09-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人