自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 N的M次方。N是浮点型,M是整数。

public class Solution { public double Power(double base, int exponent) { if(exponent==0 ) return 1; if(exponent == 1) return base; boolean isnegat...

2018-04-25 21:47:11 381

原创 怎么样实现线程安全,难道只有加锁么?不!

线程安全的本质是保证线程运行的数据的高度一致和准确,不会被其他线程修改。所以思路扩展一下,不是非得加锁才行。只要代码里没有变量 互串,线程之间彼此不会造成影响,就可以说这个线程安全。大致的方法:1.隐式锁 (线程同步 关键字synchronized)放在同步方法中,或者 同步代码块中。 public synchronized void methodTest(){ ...

2018-04-22 11:16:17 3733

转载 Java 的内存模型怎么理解呢?

JMM memory model:是jvm在(RAM)中的工作方式。JMM 属于JVM.理解JMM是理解并发编程的前提。并发编程中三大特征:原子性:原子性是指在一个操作中就是cpu不可以在中途暂停然后再调度,既不被中断操作,要不执行完成,要不就不执行.可见性:可见性就是指当一个线程修改了线程共享变量的值,其它线程能够立即得知这个修改.有序性:有序性即程序执行的顺序按照代码的先后顺序执行。并发:线程...

2018-04-22 11:16:00 207

原创 测试

其实自己也有测试经验的:贝塔测试暂且不说(在用户的角度)、在开发者角度(自己编写的代码,单个测试用例,分析底层资源映射的情况看是否正确,多组用例,看不同需求的处理是否会发生内存的出错,极大的数据量,比如几十万个需求,看是否有内存泄漏等 都是自己做过的测试。自己编写代码,去分析测试得到的结果 的正确性。)测试问题(分析思路):项目测试设计明确测试任务制定测试方案优化测试用例不要一开始就想着测试用例,...

2018-04-22 11:15:46 136

转载 Java 的堆 跟 栈 ---链表,数组

很全的链表的分析题目:点击打开链接在JAVA中,有六个不同的地方可以存储数据: 点击打开链接1. 寄存器(register)。这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。 2. 堆栈(stack)。位于通用RAM中,但通过它的“堆栈指针”可以从处理器哪里获得...

2018-04-21 22:56:55 283

转载 AQS+Lock+synchronized+ThreadLocal

转载自:https://blog.csdn.net/m_xiaoer/article/details/73459444这是一道面试题:简述AQS原理AQS核心思想是,如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并且将共享资源设置为锁定状态。如果被请求的共享资源被占用,那么就需要一套线程阻塞等待以及被唤醒时锁分配的机制,这个机制AQS是用CLH队列锁实现的,即将暂...

2018-04-21 21:54:48 241

转载 转载 ConcurrentHashMap

https://blog.csdn.net/qq_24451605/article/details/51125946点击打开链接Java并发容器(一) CocurrentHashMap的应用及实现原创 2016年04月11日 21:37:54CocurrentHashMap的优势 为什么要使用ConcurrentHashMap 线程不安全的HashMap  HashMa...

2018-04-21 16:43:44 172

原创 Java常见基础问题

1.     什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性.2.     JDK和JRE的...

2018-04-21 12:06:31 3320 2

原创 总结常见的面试题

百度校园招聘历年经典面试题汇总:开发测试岗 (1)、sql语句增、删、查、改1.使用insert插入单行数据:insert [into] <表名> [列名] values<列值>insert into Students (姓名,性别,出生日期) values ('王伟华','男','1983/6/15')2.使用insert,select语句将现有表...

2018-04-21 12:05:30 574

原创 第一次接触线程池

Executor 线程池newCachedThreadPool : 可缓存线程池,当前Pool规模长度超过处理需求回收空线程,不足时可以创建新的线程,无规模限制。newFixedThreadPool: 固定长度的线程池。控制并发数,达到max之后线程池规模不变。newScheduledThreadPool: 固定长度的线程池,计划类的线程池,可以设置执行先后,延迟、定时执行等。newSingleT...

2018-04-21 11:34:34 133

转载 N!末尾有多少个0?----这类问题可以被扩展。

转载自:信念随梦的博客  点击打开链接问题:N的阶乘(N!)中的末尾有多少个0?     例如:N = 5,N! = 120.末尾有1个0. 分析:想到这个问题,有人可能第一反应就是现求出N!,然后再根据求出的结果,最后得出N!的末尾有多少个0。但是转念一想,会不会溢出,等等。     其实,从"那些数相乘可以得到10"这个角度,问题就变得比较的简单了。     首先考虑,如果N的阶乘为K和10的...

2018-04-21 11:13:34 184

转载 再次理解java多线程的实现 Thread 和Runnable的区别

Thread和Runnable的区别如果一个类继承Thread,则不适合资源共享。但是如果实现了Runable接口的话,则很容易的实现资源共享。main函数,实例化线程对象也有所不同,extends Thread :t.start();implements Runnable : new Thread(t).start();总结:实现implements Runnable接口比继承 extends ...

2018-04-21 11:05:21 10719 2

转载 java泛型讲解-转载

转载一篇写的很好的泛型讲解,原贴:java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一  点击打开链接java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一标签: java2016年12月30日 11:44:29100438人阅读 评论(50) 收藏 举报 分类:java基础(1) 目录(?)[+]对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才...

2018-04-20 16:00:07 122

转载 HashMap为什么不安全

转载https://www.cnblogs.com/lchzls/p/6714689.html1.resize 会出现死循环-使CPU 100%HashMap底层是一个Entry数组,当发生hash冲突的时候,hashmap是采用链表的方式来解决的,在对应的数组位置存放链表的头结点。对链表而言,新加入的节点会从头结点加入。我们来分析一下多线程访问: 1.在hashmap做put操作的时候...

2018-04-19 22:14:19 274

原创 宜信笔试一道类继承题目

public class Main{ public static void main(String[] args){ Base obj1 = new Base(); Base obj2=new Base1(); Base obj3=new Base2(); System.out.print(obj1.run(10));//输出110 System.out.print(obj2...

2018-04-19 20:52:13 315

转载 字符串按8位截取输出

输入描述:连续输入字符串(输入2次,每个字符串长度小于100)输出描述:输出到长度为8的新字符串数组示例1输入abc123456789输出abc000001234567890000000这个解法厉害了,牛客上的解法 ,自己写的特别复杂 还只过了80% 。充分利用了String 的substring方法。 直接println(s);就可以了 不用什么charAt(i);s.substrin...

2018-04-18 16:55:04 3428

原创 单例模式的几种设计方法

package test1;//饿汉模式/*public class SingleDemo { private static SingleDemo instance = new SingleDemo(); private SingleDemo(){} public static SingleDemo getinstance(){ return instance; }}*//...

2018-04-17 11:30:34 125

转载 简单的死锁

package test1; /** * 一个简单的死锁类 * @author iStar * 当类的对象flag=1时(T1),先锁定O1,睡眠500毫秒,然后锁定O2; * 而T1在睡眠的时候另一个flag=0的对象(T2)线程启动,先锁定O2,睡眠500毫秒,等待T1释放O1; * T1睡眠结束后需要锁定O2才能继续执行,而此时O2已被T2锁定; * T2睡眠结束后需要锁定O1...

2018-04-17 10:58:24 146

转载 面试算法

https://blog.csdn.net/lisuxuan_1993/article/details/41794273给定两个数组X和Y,元素都是正数。请找出满足如下条件的数对的数目:x^y > y^x,即x的y次方>y的x次方x来自X数组,y来自Y数组假设数组X的长度为m,数组Y的长度为n,最直接的暴力法,时间复杂度为O(m*n),但这样的话,并不需要都是正数这个条件的。那么,我们...

2018-04-16 16:15:53 110

原创 JVM 第三章垃圾回收部分摘抄

我们要怎么理解这里说的引用呢?强引用:new Object() ,只要强引用还在,就不能GC软引用:系统将要内存溢出异常,这之前将对象列入回收范围,二次回收。弱引用:只能生存到下次GC之前,无论内存是否充足。虚引用:相同虚设、对象与之关联的目的是:在本对象被GC时收到一个系统通知。Be or Die ???可达性分析中:“一定非死不可么?,有没有可能逃脱死亡?”可达性分析出不可达之后,只是死缓,并...

2018-04-15 22:00:58 101

原创 JAVA 实现循环数组的最大在、连续子数组的和

剑指Offer上有类似的题目:-------------->求数组连续子数组的最大和为多少?-------------->求循环数组连续子数组的最大和为多少?数组好说 判断之前节点的sum < 0;没必要拿本数,去还债,直接设置sum=a[i];依次循环 【重点max 最开始要被初始化为 Integer.MIN_VALUE】循环数组:关键在于,找到的sum 有两种可能的情况:1....

2018-04-15 15:56:18 777

转载 TCP 握手挥手面试常见问题

概述:虽然IP层将分组数据送到目的主机,但严格讲,计算机网络中的两个主机通信其实是两个主机上的应用进程通信,通信的端点不是主机而是主机上的应用进程。网络层提供主机间的逻辑通信,运输层提供端口间的逻辑通信。UDP的主要特点:1、UDP是面向无连接的运输层协议,发送数据前不用建立连接,可靠性降低但提高效率2、UDP是提供最大努力的交付服务3、UDP是面向报文的,即一次发送一个报文,不合并、不拆分,但如...

2018-04-14 22:02:34 181

转载 java—去除字符串重复字符 利用Java数据结构的特性避免O(N^2)的解法

1 public class Test { 2 public static void main(String[] args) { 3 String s = "xXccxxxXX"; 4 // 从头开始查找是否存在指定的字符,索引从0开始 //结果如下 5 System.out.println(s.in...

2018-04-14 22:01:53 672

原创 Linux常考的指令

https://www.cnblogs.com/crazylqy/p/5818745.html 这个里面有一些很基础的很详细的说名。点击打开链接测试开发常考的指令:(1)Linux的文件系统目录配置要遵循FHS规范,规范定义的两级目录规范如下:        /home  每个账号在该目录下都有一个文件夹,进行数据的管理        /usr 有点像windows的program files和w...

2018-04-14 22:01:06 271

原创 给定根节点,求完全二叉树的节点数量。

给定根节点root--->递归方法求完全二叉树的节点个数。[时间复杂度要小于O(N) ] O(log(N)^2)先给出线序遍历的时间复杂度为O(N)的求解方法。1.设置全局变量记录count;前序遍历二叉树,等于记录下递归的次数。2.时间复杂度是O(N);public class Solution { private int count=0; public int node...

2018-04-14 22:00:35 829

原创 大数相乘

必须都要进行字符串翻转处理,从最低位开始按位相乘、相加、相减 否则位置不好对应,很容易出错。package test1;public class BigDataMinusAddCheng { public static void main(String[] args){ String a = "129"; String b = "44413"; System.out.printl...

2018-04-13 22:37:14 99

原创 求两个字符串的交集并集和差集用JAVA

两个字符串是s1,s2求并集、交集和补集(差集)【下面代码充分利用了Java数据结构的优势,但是,却忽略了一种情况,如果s1或s2本身有重复字符的话,就不能用了啊】import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; import java.util.Map; im...

2018-04-13 21:38:20 8793

转载 进程之间、线程之间通信

为什么需要进程间通信??https://blog.csdn.net/alpha_love/article/details/62238170进程是一个独立的资源分配单元,不同进程(这里所说的进程通常指的是用户进程)之间的资源是独立的,没有关联,不能在一个进程中直接访问另一个进程的资源(例如打开的文件描述符)。但是,进程不是孤立的,不同的进程需要进行信息的交互和状态的传递等,因此需要进程间通信( IP...

2018-04-12 10:50:03 275

原创 常用的Linux 基本指令

pwd ---print working director显示当前工作目录的路径名称 cd .. --- 返回上层目录,‘.’代表工作目录,‘..’代表父目录 ; cd - --- 输出当前路径 ls --- 列出当前目录的所有内容 ls -l --- 使用长格式(有时间、大小等信息)显示 ls -a --- 列出所有隐藏文件 ls -la --- 长格式显示所有文件 l...

2018-04-10 22:47:05 111

原创 java语法 逻辑 啥的

链接:https://www.nowcoder.com/questionTerminal/48b14664da4c450dae1316c98a5f47d3来源:牛客网如下代码的输出结果是什么?public class Test {     public int aMethod(){        static int i = 0;        i++;         return i;    ...

2018-04-10 22:46:54 203

原创 牛客刷题遇到的小知识点

JVM的程序计数器1和虚拟机栈2是线程隔离的,方法区3和堆4是共享的。1:当前线程执行到字节码的那个位置,执行本地方法时,为空;2:存储局部变量,操作数栈,动态链接,方法出口等,一个方法->一个栈帧??,一个线程->一个栈;3:JVM加载的所有类信息(名称、方法信息、字段信息等),静态变量,常量,编译器编译后的代码等;4:new出来的java对象,为对象的实例分配内存。package包...

2018-04-10 22:46:45 148

原创 判断是否回文字符串 And 最长回文字符串 子串长度

判断是否回文字符串方法一:传统两个指针 begin---end;  str.charAt(begin)==str.charAt(end) 不能用str[begin]==str[end];没有这种用法; String str import java.util.Scanner; public class Main{ public static void main(String[] args...

2018-04-10 22:46:37 154

原创 刷牛客 遇到的java题目

还是Java基础太差,只是一点点的补,忧伤。太多细节知识点,暂时不说到框架啥的高深的。int x=20, y=5,则语句System.out.println(x+y +""+(x+y)+y);  的输出结果是()1)不论有什么运算,小括号的优先级都是最高的,先计算小括号中的运算,得到x+y +""+25+y2)任何字符与字符串相加都是字符串,但是是有顺序的,字符串前面的按原来的格式相加然后被视为一...

2018-04-10 22:46:08 219

原创 牛客

  import java.util.Scanner;  public class Main{    public static void main(String[] args){        Scanner sc = new Scanner(System.in);       int n = scan.nextInt();     String s = scan.next...

2018-04-10 22:45:54 297

转载 String,StringBuffer与StringBuilder的区别

String 字符串常量【被final修饰】每次会生成新的String对象,无用时GC,StringBuffer 字符串变量(线程安全)意见,特别是字符串经常改变时,StringBuilder 字符串变量(非线程安全)而在某些特别情况下, String 对象的字符串拼接其实是被 JVM 解释成了 StringBuffer 对象的拼接,所以这些时候 String 对象的速度并不会比 StringBu...

2018-04-10 22:45:41 52

转载 C++ 和 Java的区别 你觉得呢?

作者:飞龙链接:https://www.zhihu.com/question/22928284/answer/48120353来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。1. 变量和类型1.1 Java没有无符号整数。(无符号右移在Java中强制用三个右尖括号表示)。1.2 Java有内置类型String,而C++没有。C++的std::string是可变的,类似...

2018-04-10 22:45:34 148

转载 死锁

死锁https://www.cnblogs.com/loveyakamoz/archive/2012/11/14/2770812.html什么是死锁所谓死锁:是指多个进程在运行过程中因争夺资源而造成的一种僵局。死锁的检测:【资源分配图法:看是否可以完全简化】图2-17 进程P1分得两个R1资源,请求一个R2; 进程P2分得一个R1,请求一个R1,分得一个R2;死锁定理:化简资源图【http://w...

2018-04-10 22:45:04 112

转载 理解Java中的值传递是怎么回事

转载自【http://www.cnblogs.com/binyue/p/3862276.html 纸上得来终觉浅】理解Java中的只存在的-----值传递【很多修正来自https://www.cnblogs.com/chen-kh/p/6696303.html】关于Java传参时是引用传递还是值传递,一直是一个讨论比较多的话题,有论坛说Java中只有值传递,也有些地方说引用传递和值传递都存在,比较...

2018-04-10 20:17:02 210

转载 HashMap和HashSet的区别

HashMap和HashSet的区别是Java面试中最常被问到的问题。如果没有涉及到Collection框架以及多线程的面试,可以说是不完整。而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整。HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合。collection框架有自己的接口和实现,主要分为Set接口,Lis...

2018-04-08 21:04:15 94

转载 Java中Collections.sort()排序详解

默认是按照升序排列的。要使用Collections.sort(),看java源码中的内容:首先我们再使用的时候都是这样的:Collections.sort(List list , Comparator<? super T> c)首先我们看一下官方文档的描述Sorts the specified list according to the order induced by the spe...

2018-04-08 20:28:55 273

空空如也

空空如也

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

TA关注的人

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