09 2018 档案
摘要:Java提供的位运算符有:左移( << )、右移( >> ) 、无符号右移( >>> ) 、位与( & ) 、位或( | )、位非( ~ )、位异或( ^ ),除了位非( ~ )是一元操作符外,其它的都是二元操作符。 PS:所有的位运算操作都是基于二进制补码进行的,干开发的都应该知道相关知识吧,我就
阅读全文
摘要:对于JavaScript的substring() 方法或者String的subString()方法,相信很多人都有用过,最近因为工作的需要,需要在sql中对字段进行切割。下面是我在网上收集的一些信息。 SUBSTR函数是用来截取数据库某一列字段中的一部分。 在各个数据库的函数名称不一样 MySQL:
阅读全文
摘要:闲语 2018年9月25日,Java 11正式发布,与JDK 10不同,JDK 11将提供长期支持,还将作为Java平台的参考实现以及标准版(Java SE)11。Oracle直到2023年9月都会为JDK 11提供一级支持,而补丁和安全警告等扩展支持将延续到2026年。新的LTS版本每三年发布一次
阅读全文
摘要:Java 9才发布几个月,很多玩意都没整明白,Java 10就来了。。这时候我真尼玛想说:线上用的JDK 7 ,JDK 8 还没用熟,JDK 9 才发布不久不知道啥玩意,JDK 10……刚学Java的同学是不是感觉一脸蒙逼?!!!就连我也同样感觉如此! Java 更新越来越快,我们做技术的也要跟上步
阅读全文
摘要:距Java 8正式发布三年多时间,Java 9 于2017年9月21日正式发布, 你可能已经听说过 Java 9 的模块系统(讨论的最多的),但是这个新版本还有许多其它的更新。 这里我整理了Java 9几个令人兴奋的新功能。 Java 平台模块系统 当代码库越来越大,创建复杂,盘根错节的“意大利面条
阅读全文
摘要:闲语: 相比于今年三月份才发布的Java 10 ,发布已久的Java 8 已经算是老版本了(传闻Java 11将于9月25日发布....)。然而很多报道表明:Java 9 和JJava10不是 LTS 版本,和过去的 Java 大版本升级不同,它们只有半年左右的开发和维护期。而未来的 Java11,
阅读全文
摘要:在上一篇博客Java --内部类(一)中已经提过了,java中的内部类主要有四种:成员内部类、局部内部类、匿名内部类、静态内部类。 该文主要介绍这几种内部类。 成员内部类 成员内部类也是最普通的内部类,它是外围类的一个成员,所以他是可以无限制的访问外围类的所有 成员属性和方法,尽管是private的
阅读全文
摘要:什么是内部类 将一个类的定义放在另一个类的定义内部,这就是内部类。在Java中内部类主要分为成员内部类、局部内部类、匿名内部类、静态内部类。举个栗子: 为什么要用内部类 在《Think in java》中有这样一句话:使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外
阅读全文
摘要:在上一章我们从宏观上介绍了ThreadPoolExecutor,本文将深入解析一下线程池的具体实现原理 原理解析 线程池状态 在ThreadPoolExecutor中定义了一个volatile变量,另外定义了几个static final变量表示线程池的各个状态: runState表示当前线程池的状态
阅读全文
摘要:什么是线程池? 线程池就是以一个或多个线程循环执行多个应用逻辑的线程集合. 为什么用线程池? 创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处理效率 例如: 记创建线程消耗时间T1,执行任务消耗时间T2,销毁线程消耗时间T3 如果T1+T3>T2,那么是不是说开启一个线程来
阅读全文
摘要:在介绍Java的阻塞队列之前,我们简单介绍一下队列。 队列 队列是一种数据结构.它有两个基本操作:在队列尾部加人一个元素,和从队列头部移除一个元素就是说,队列以一种先进先出的方式管理数据,如果你试图向一个已经满了的阻塞队列中添加一个元素或者是从一个空的阻塞队列中移除一个元索,将导致线程阻塞.在多线程
阅读全文
摘要:上一章我们已经简要的介绍了Java中的一些锁,本章我们就详细的来说说这些锁。 synchronized锁 synchronized锁是什么? synchronized是Java的一个关键字,它能够将代码块(方法)锁起来 它使用起来是非常简单的,只要在代码块(方法)添加关键字synchronized,
阅读全文
摘要:在学习或者使用Java的过程中进程会遇到各种各样的锁的概念:公平锁、非公平锁、自旋锁、可重入锁、偏向锁、轻量级锁、重量级锁、读写锁、互斥锁、死锁、活锁等,本文将简概的介绍一下各种锁。 公平锁和非公平锁 公平锁是指多个线程在等待同一个锁时,必须按照申请锁的先后顺序来一次获得锁。 公平锁的好处是等待锁的
阅读全文
摘要:上一章已经提到“如果一个进程被多次回滚,迟迟不能占用必需的系统资源,可能会导致进程饥饿”,本文我们详细的介绍一下“饥饿”和“公平”。 Java中导致饥饿的原因 在Java中,下面三个常见的原因会导致线程饥饿: 高优先级线程吞噬所有的低优先级线程的CPU时间 你能为每个线程设置独自的线程优先级,优先级
阅读全文
摘要:简介 当两个以上的运算单元,双方都在等待对方停止运行,以获取系统资源,但是没有一方提前退出时,就称为死锁。在多任务操作系统中,操作系统为了协调不同进程,能否获取系统资源时,为了让系统运作,必须要解决这个问题。 例如,如果线程1锁住了A,然后尝试对B进行加锁,同时线程2已经锁住了B,接着尝试对A进行加
阅读全文
摘要:提到ThreadLocal,有些Android或者Java程序员可能有所陌生,可能会提出种种问题,它是做什么的,是不是和线程有关,怎么使用呢?等等问题,本文将总结一下我对ThreadLocal的理解和认识,希望让大家理解ThreadLocal更加透彻一些。 ThreadLocal是什么 Thread
阅读全文
摘要:上一节已经讲到,使用Synchronzied代码块可以解决共享对象的竞争问题,其实还有其他的方法也可以避免资源竞争问题,我统称他们为Java同步块。Java 同步块(synchronized block)用来标记方法或者代码块是同步的,可以避免资源竞争,避免死锁。。 Java 同步关键字(synch
阅读全文
摘要:前面我们已经介绍了:当对象和变量存储到计算机的各个内存区域时,必然会遇到的两个问题及解决方法 共享对象的可见性-- 解决方法:使用java volatile关键字 共享对象的竞争现象 -- 解决方法:使用java synchronized代码块 那么,volatile和 synchronized有什
阅读全文
摘要:Java内存模型 前面讲到了Java线程之间的通信采用的是共享内存模型,这里提到的共享内存模型指的就是Java内存模型(简称JMM),JMM决定一个线程对共享变量的写入何时对另一个线程可见。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memor
阅读全文
摘要:竞态条件与临界区 在同一程序中运行多个线程本身不会导致问题,问题在于多个线程访问了相同的资源。当多个线程同时访问同一个资源,并且其中的一个或者多个线程对这个资源进行了写操作,才会产生竞态条件。多个线程同时读同一个资源不会产生竞态条件。如,同一内存区(变量,数组,或对象)、系统(数据库,web ser
阅读全文
摘要:Java线程 Java线程类也是一个object类,它的实例都继承自java.lang.Thread或其子类。 Java可以用如下方式创建一个线程: 执行该线程可以调用该线程的start()方法: 在上面的例子中,我们并没有为线程编写运行代码,因此调用该方法后线程就终止了。 创建、执行线程的方式 无
阅读全文
摘要:多线程发展进程 在过去单CPU时代,单任务在一个时间点只能执行单一程序;发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程--虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个CPU,并交由操作系统来完成多任务间对CPU的运行切换,以使得每个任务都有机会获得一定的时间片运行。
阅读全文
摘要:Spring Boot Spring Boot 是由Pivotal团队提供的框架,它并不是一个全新的框架,而是将已有的 Spring 组件整合起来,设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Sp
阅读全文
摘要:SS搭建好后,我们需要下载Shadowsocks客户端,设置好后就可以使用了。 一、PC端 windows下载地址: 点击下载 IOS下载地址:暂无 下载好后,傻瓜式安装。填写好安装服务器时设置的端口、密码及加密方式,直接点击完成。 配置完成后,在电脑的隐藏任务栏会有个灰色的纸飞机,右键纸飞机,配置
阅读全文
摘要:在这篇文章中,我们演示开通VPS主机之后,获取需要的远程登入账户信息,利用SSH客户端,从而对Linux服务器进行管理的过程。 1.前期准备工作 购买合适的VPS,并获取到当前VPS信息。 这里我们可以看到当前服务器的IP、ROOT、密码(点击眼睛图标可以看到)。然后我们通过相关的SSH工具管理服务
阅读全文
摘要:Vultr介绍 Vultr是美国知名云服务提供商Choopa.com旗下的VPS服务,Vultr母公司Choopa一直在为游戏公司提供全球支撑服务,因此该公司在全球14个国家及地区部署数据中心,包括日本东京、新加坡、美国洛杉矶、西雅图、英国伦敦、德国等地。可谓公司资金雄厚,体验和服务一流,最重要的是
阅读全文
摘要:原文连接:https://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html 为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关
阅读全文
摘要:原文地址:Nginx Linux详细安装部署教程 一、Nginx简介 Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤 二、Nginx安装 1、下载Nginx及相关组件 下载相关组件 安装c++编译环
阅读全文
摘要:因为工作变动,到新公司需要安装开发环境,因为电脑是我的“前任”在使用,一般的开发环境都有,就直接上手代码,连接公司数据库。直到某天打算自己写点东西,连接本地的mysql,发现navicat怎么都连接不上本地mysql,重启,修改配置都试了,还是不行,最后选择卸载重装,可是让我更加郁闷的是 卸载后安装
阅读全文
摘要:八、Maven安装配置 1. 下载 wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz2. 解压 tar xvf apache-maven-3.3.9-bin.t
阅读全文
摘要:网络配置 一、配置dns 1.修改/etc/NetworkManager/NetworkManager.conf 文件,在main部分添加 “dns=none” 选项: 2.NetworkManager重新装载上面修改的配置 # systemctl restart NetworkManager.se
阅读全文
摘要:(35)对资源的close()建议分开操作虽然有些麻烦,却能避免资源泄露。我们想,如果没有修改过的代码,万一XXX.close()抛异常了,那么就进入了catch块中了,YYY.close()不会执行,YYY这块资源就不会回收了,一直占用着,这样的代码一多,是可能引起资源句柄泄露的。而改为下面的写法
阅读全文
摘要:(21)将常量声明为static final,并以大写命名 这样在编译期间就可以把这些内容放入常量池中,避免运行期间计算生成常量的值。另外,将常量的名字以大写命名也可以方便区分出常量与变量 (22)不要创建一些不使用的对象,不要导入一些不使用的类 这毫无意义,如果代码中出现”The value of
阅读全文
摘要:(1)尽量指定类、方法的final修饰符 带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写。如果指定了
阅读全文
摘要:1.在 Java 中类的定义在 Java 中,类是用于创建对象和定义数据类型的模板。 它充当面向 Java 语言的系统的构建块。2.静态加载和动态加载有什么区别?静态类加载涉及使用新关键字来创建对象和实例,而动态加载是在编译时不知道类的名称的场景执行的。3. 什么是多线程多线程是一种编程概念,用于在
阅读全文
摘要:ps:对于开发工具,不同的开发人员有不同的设置喜好,这里介绍的是我个人的配置,不喜勿喷。 Appearance:个人喜欢全黑主题,雅黑字体 背景图片, 效果如下,编写代码的时候有个自己喜欢的背景图片,还是比较舒心的一件事。 Keymap:快捷键方式,如果你对eclipse的快捷键比较熟悉,选择Ecl
阅读全文
摘要:IDEA作为java开发必不可少的一个工具,对于老Eclipse开发人员刚接触的时候可能会有些陌生,同时,maven也是java开发经常使用的工具,有些人可能会不清楚怎么在idea里面使用maven,我这里简单的介绍一下。 CTRL+ALT+S打开settings,在上方搜索 maven 。 在左边
阅读全文
摘要:一、创建空Maven项目 二、左边选择maven,右边可以什么不选,直接next; 三、填写artifactId,点击next直到finish 四、finish后,idea会生成如下结果模块,删除src,并在pom文件加上packing 五、创建第一个spring cloud模块 六、finish后
阅读全文
摘要:1.打开IDEA,创建新项目,选择Spring Initializr,选择SDK为你的java版本。 2.点击下一步,输入Artifact 3.点击下一步,选择web 4.finish 5.完成后idea自动生成下列结构,框出来的可以删掉。 idea会为每个module生成一个application
阅读全文
摘要:最智能的IDE IDEA 全称IntelliJ IDEA 是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面的功能可以说是超常的。 IDEA是
阅读全文