自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

进阶的科技花园~

Time will say.

  • 博客(33)
  • 资源 (3)
  • 收藏
  • 关注

原创 2019携程校园招聘编程题(2)取满足条件订单号

/** * 6 找出满足给定范围的订单号 * 输入: * 订单数N * 给定入店时间 * 订单号1 入店时间1 离店时间1 * 订单号2 入店时间2 离店时间2 * 订单号3 入店时间3 离店时间3 * ... * 订单号N 入店时间N 离店时间N * * 输出: * 升序排...

2018-09-06 11:33:30 413

转载 Java中遍历Map的几种方法

 java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点先初始化一个mappublic class TestMap { public static Map<Integer, Integer> map = new HashMap<Integer, Int...

2018-07-16 17:41:49 246

原创 高效并发之锁优化

自旋----优化---->适应性自旋(Adaptive Spinning):用于线程占用共享数据时间很短的情况下。锁消除(Lock Elimination):用于实际上不需要加锁的情况。锁粗化(Lock Coarsening):用于频繁加锁解锁的情况。轻量级锁(Lightweight Locking):相对于使用互斥量的传统锁,轻量级锁并不是用来代替重量级锁的。他的本意是在没有多线程竞争的前...

2018-06-25 22:36:18 355

原创 高效并发之线程安全

高效并发:首先需要保证并发的正确性,然后在此基础上实现高效。1、Java语言中的线程安全不可变绝对线程安全相对线程安全线程兼容线程对立2、线程安全的实现方法互斥同步非阻塞同步无同步方案...

2018-06-25 22:21:47 282

原创 被synchronized修饰的方法特别之处

synchronized关键字修饰一个方法,可以保证多线程状态下,该方法的调用对象是同步变化的。如下例所示:两个线程同时调用vector的remove方法对vector变量进行操作,vector的长度是连续变化的。(Vector是线程安全的,Vector类中的方法都被synchronized修饰,当然包括remove()方法)public class _Main { private stati...

2018-06-12 22:07:43 529

原创 字符串拼接:String 的“+”、concat()方法 VS StringBuilder( or StringBuffer) 的append()方法

字符串拼接的三种方法:① 加号 "+"② concat()方法 ③ StringBuilder(或StringBuffer)的append()方法一般来讲,拼接速度:3>2>1原因:1、对+号来说每趟循环都会创建一个StringBuilder对象 ;每次执行完毕都会调用toString方法将其转换为字符串 。不适用于循环操作。String str = "My name is ";st...

2018-06-11 22:08:51 2708

原创 线程

        并发不一定要依赖多线程(如PHP中很常见的多进程并发)。但是Java里面谈论并发,大多数都与线程脱不开关系。每个已经执行start()且还未结束的java.lang.Thread类的实例就代表了一个线程。Thread类的所有关键方法都是声明为Native的。在Java API中,一个Native方法往往意味着这个方法没有使用或无法使用平台无关的手段来实现(也可能是为了执行效率而使用...

2018-06-10 18:48:47 174

原创 Java内存模型(JMM)、“先行发生”原则

Java内存模型(Java Memory Model,JMM)的主要目标是定义程序各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。JMM规定所有变量都存储在主内存(Main Memory)中,线程间变量值的传递均需要通过主内存来完成。内存间交互操作JMM定义了8种操作来完成主内存与工作内存之间的交互,这8种操作具有原子性、不可再分性(对于double、long类型...

2018-06-04 22:41:18 909

原创 早期(编译期)优化(一)----编译过程

编译过程大致分为三个过程:解析与填充符号表过程插入式注解处理器的注解处理过程分析与字节码生成过程下面详细说明这三个过程的主要内容1.解析与填充符号表过程1.2解析结果包括词法分析和语法分析,词法分析是将源代码的字符流转变为标记(Token)集合语法分析是根据Token序列来构造抽象语法树的过程,抽象语法树(AST,Abstract Syntax Tree)是一种用来描述程序代码语法结构的树形表示方...

2018-05-30 22:21:36 423

原创 IT部分小知识点笔记

1、存取速度比较L3高速缓存>内存>SSD固态硬盘>7200转硬盘2、进程的特性动态性    进程的实质是进程实体的一次执行过程,由创建而产生,由调度而执行,由撤销而消亡。并发性    引入进程的目的正是为了使其能和其他进程实体并发执行独立性    进程实体是一个能独立运行、独立分配资源和独立接收调度的单元,凡未建立PCB(进程管理块)的程序都不能作为一个独立的单元参与运行异步性...

2018-05-23 21:36:56 1692

原创 GC回收之四:JDK主要命令行工具 & 可视化工具

Sun JDK监控和故障处理工具:jps(JVM Process Status Tool)  虚拟机进程状况工具,显示指定系统内所有的HotSpot虚拟机进程jstat(JVM Statistics Monitoring Tool)  虚拟机统计信息监视工具,用于收集HotSpot虚拟机各方面的运行数据jinfo(Configuration Info for Java) Java配置信息工具,显示...

2018-05-05 19:13:49 292

原创 GC回收之三:内存分配

自动内存管理主要解决了两个问题:给对象分配内存和回收分配给对象的内存。对象的内存分配,主要是在堆上分配(有些可能经过JIT编译后被拆散为标量类型并间接地在栈上分配),对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配。少数情况下也可能会直接分配在老年代中,分配的 具体规则取决于当前使用的是哪一种垃圾收集器,还有虚拟机中与内存相关的参数的设置。下面介绍几条最...

2018-05-05 15:54:02 225

原创 GC回收之二:4种垃圾收集算法及7种垃圾收集器

本文主要介绍4种垃圾收集算法及8种垃圾收集器:垃圾收集算法1、标记-清除算法(Mark-Sweep)“标记-清除”算法是最基础的算法,分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。它主要由两个缺点:一个是效率问题,标记和清除过程的效率都不高;另一个是空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致当程序在以后的运行过程...

2018-05-04 10:06:22 18142 9

原创 GC回收之一:判断对象存活算法、四种引用、回收方法区

       当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,就需要对GC和内存分配的技术实施必要的监控和调节。判断对象是否存活的算法:1、引用计数算法      给对象添加一个引用计数器,当有一个地方引用它时,计数器值就加1;当引用失效时,计数器就减1;任何时候计数器都为0的对象就是不可能再被使用的。引用计数器算法(Reference Counting)实现简单...

2018-05-01 21:51:17 2725

原创 内存溢出异常(OutOfMemoryError)

     在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(OOM)异常的可能。虚拟机启动参数的设置:    如果使用控制台命令来执行程序,那么直接跟在Java命令之后书写即可。    如果使用Eclipse IDE,则可以在Debug/Run页签设置(Debug Configurations->Arguments-&gt...

2018-04-27 10:18:55 2313

原创 访问对象两种方式--句柄和直接指针

      由于reference类型在Java虚拟机规范里只规定了一个指向对象的引用,并没有定义这个引用应该通过哪种方式去定位,以及访问到Java堆中的对象的具体位置,因此不同虚拟机实现的对象访问方式会有所不同,主流的访问方式有两种:使用句柄和直接指针。1、使用句柄访问方式如果使用句柄访问方式,Java堆中会划分出一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了...

2018-04-26 16:43:50 11790 2

原创 JVM运行时数据区域、直接内存

一、JVM运行时数据区域其中方法区、堆是由所有线程共享的数据区,虚拟机栈、本地方法栈、程序计数器是线程隔离的数据区。1、程序计数器(Program Counter Register)      它是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时就是通过改变这个计数器的值来...

2018-04-26 16:02:06 1377 2

原创 线程同步机制

现在流行的进程线程同步互斥的控制机制,其实是由最原始的、最基本的四种方法(临界区、互斥量、信号量、事件)实现的。1)临界区(Critical Section):通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。2)互斥量(Mutex):为协调对一个共享资源的单独访问而设计,只有拥有互斥量的线程才有权限去访问系统的公共资源,因为互斥量只有一个,所以能够保证资源不会同时被多个线程...

2018-04-25 10:31:16 116

原创 进程与线程的区别

程序       程序是一组指令的有序结合。进程      进程是具有一定独立能力的程序关于某个数据集合上的一次运行活动,他是系统进行资源分配和调度的一个独立单位。例如,用户运行自己的程序,系统就创建一个进程,并为他分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等,然后该进程被放入到进程的就绪队列,进程调度程序选中它,为它分配CPU及其他相关资源,该进程就被运行起来。 ...

2018-04-24 17:05:37 148

原创 JD Intern 2.1 Java的优点

Java能获得如此广泛的认可,主要有以下几个原因:1、拥有一门结构严谨、面向对象的编程语言(封装、继承、多态)2、摆脱了硬件平台的束缚,实现了“一次编写、到处运行”的思想(JVM虚拟机)3、提供一种相对安全的内存管理和访问机制,避免了绝大部分的内存泄漏和指针越界问题4、实现了热点代码检测和运行时编译及优化,这使得Java应用能随着运行时间的增加而获得更高的性能5、拥有一套完善的应用程序接口,还有无...

2018-04-23 11:34:48 169

转载 MySQL数据库优化的八种方式(经典)

1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。同样的,如果...

2018-04-21 21:27:52 237

转载 关系型数据库与非关系型数据库

        当前主流的关系型数据库有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。非关系型数据库有 NoSql、Cloudant。非关系型数据库的优势:        1. 性能NoSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高。        2. 可扩展性同样也是因为基...

2018-04-18 15:45:07 32338 4

原创 事务特性及脏读、不可重复读、幻读(虚读)

事务是指逻辑上的一组操作,这组操作要么全部成功,要么全部失败。事务的特性(ACID):原子性(A):事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。一致性(C):事务前后数据的完整性必须保持一致。例:A:200,B:200,A、B之间无论怎么交换,最终都要保证和是400。隔离性(I):多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要相互...

2018-04-18 11:01:10 2012

原创 public <T> void method(),void前面的泛型T是什么

public &lt;T&gt;这个T是个修饰符的功能,表示是个泛型方法,就像有static修饰的方法是个静态方法一样。注意&lt;T&gt; 不是返回值,此处的返回值是void ,此处的&lt;T&gt; 表示传入参数有泛型,&lt;T&gt;存在的作用,是为了保证参数中能够出现T这种数据类型。e.g: public static &lt;T&gt; list&lt;T&gt; Method(T...

2018-04-17 15:39:55 5420 1

原创 Spring两种注入方式(设值、构造)

设值注入假设A类里面使用到B类,则A类必须包含一个setBer ()的方法(Ber为在A中B的实例化对象的名称),将Ber作为A的一个属性,在使用设值注入的时候调用setBer()方法。ref的值要和他引用的bean的id相同,而Ber的值要和property属性中的name值相同。构造注入假设A类里面使用到B类,则A类必须有一个构造器,构造器的参数必须与constructor-arg 中name...

2018-04-15 21:49:07 1709

转载 Java中处理大数据问题(BigInteger、BigDecimal)

原文转自:https://blog.csdn.net/zhongkelee/article/details/52289163; http://www.cnblogs.com/chenssy/ 适用范围使用BigInteger操作大整数(处理超出long整型范围的数据)使用BigDecimal指定小数的保留位数基础知识对于二进制来说,最高位代表正负号,-0表示-128,+0表示032位系统int型4...

2018-04-14 21:42:03 696

原创 编程题“奇怪的数组”

package com.test.nowcode1;import java.util.ArrayList;import java.util.List;import java.util.Scanner;/** * * zhrt是数学大佬,但有一天一道奇怪的数学题把他难住了: * 题目要求计算两个十进制数相加后的结果,但在本题中是不需要进位的! * 输入描述: 输入有多组(组数...

2018-04-14 19:09:11 372

原创 2018网易实习生编程题(5)

package com.intern.NetEase8;import java.util.Scanner;/** * AC ^_^ 牛牛以前在老师那里得到了一个正整数数对(x, y), 牛牛忘记他们具体是多少了。 但是牛牛记得老师告诉过他x和y均不大于n, * 并且x除以y的余数大于等于k。 牛牛希望你能帮他计算一共有多少个可能的数对。 输入:n k 输出:数对个数 * */p...

2018-04-13 17:19:45 136

原创 2018网易实习生编程题(4)

import java.util.Scanner; //牛牛去犇犇老师家补课,出门的时候面向北方,但是现在他迷路了。虽然他手里有一张地图,但是他需要知道自己面向哪个方向,请你帮帮他。public class Main {public static void main(String[] args){ Scanner in=new Scanner(System.in); int ...

2018-04-13 16:15:48 121

原创 2018网易实习生编程题(2)

import java.util.*; /** * 一个数组: * * 1,12,123,1234,12345,...,12345678910,1234567891011,... * * 给出一个数组的闭区间[i,r],求里面被三整除的数的个数 * @author pikaqiu * */public class Main{ public static void ma...

2018-04-13 16:12:37 125

原创 Spring学习资料

官网:强烈推荐:spring官方文档,http://spring.io/http://projects.spring.io/spring-framework/相关jar包下载地址:http://mvnrepository.com/search?q=spring点击所需版本的jar下载,主要jar包有: Spring ContextSpring Core Spring BeansSpring Web...

2018-04-12 20:40:40 625

原创 Struts2访问Servlet API 的三种方式

Struts2访问Servlet API 的三种方式为:1、通过ActionContext类2、Action直接访问Servlet API3、使用ServletActionContext访问Servlet API下面具体说明这三种方式:一:通过ActionContext类Struts2提供了ActionContext类,struts2可以通过该类来实现与Servlet API的访问。ActionC...

2018-04-11 20:43:15 247

原创 京东2019实习笔试部分编程题

import java.util.ArrayList;import java.util.List;import java.util.Scanner;/** * 输入t组数,每一组数为N; * 找到N=x*y,其中x为偶数,y为奇数,找到了打印出来,否则输出"No" * @author lily * */public class Main { public static voi...

2018-04-09 22:36:45 776

socket通信图

展示了socket的通信过程,初学者对socket可以有很好的了解

2018-06-01

SPRING-FRAMEWORK-4.3.16.RELEASE

SPRING-FRAMEWORK-4.3.16.RELEASE提供了支持spring框架的配置文件和源码

2018-04-18

jcaptcha-api-1.0.jar

jcaptcha-api-1.0.jar,验证码相关的jar包,jcaptcha组件

2018-04-12

空空如也

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

TA关注的人

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