- 博客(49)
- 资源 (3)
- 收藏
- 关注
原创 Java面试题 第六部分 分布式
1 什么叫做分布式系统,soa架构,微服务架构最开始的单机系统:一台服务器部署一个单机应用加上一个数据库(数据库和应用可能不在同一个服务器上)就能完成简单的功能需求伴随着业务量增加,单机系统承载不了这么大的压力,开始引入集群的概念,应用采用多个服务器集群部署,数据库独立到单独的服务器上业务开始变得复杂,任何修改都需要对整个集群进行升级改造成本太高,开始引入分布式架构,==应用可以按逻辑处理...
2019-11-02 17:29:39 246
原创 Java面试题 第五部分 数据库相关
因为数据库相关的的内容比较多,所以这一部分分为上下两个章节,第一节Redis&Mysql,第二节Redis1 Redis有哪些数据结构?底层的编码有哪些?有序链表采用了哪些不同的编码?数据结构String(Key,Value) function:get,set,delList(Key,List) function:rpush,lrange,lindex,lpopSet...
2019-10-16 20:52:42 266
原创 Java面试题 第四部分 数据结构
Collection集合类HashMaphashmap的底层结构hashmap的put和get操作 (Array then List)hash到Array的某个节点上;遍历节点的list;判断是否相等,调用equals方法判断相等判断是否需要进行扩容;放入对象hashmap成环的原因hashmap为什么线程不安全hashmap在JDK1.8之后的变化HashSet1 ...
2019-10-15 08:32:48 223
原创 Java面试题 第三部分 线程/线程池/JUC并发库
线程1 Java线程的状态(join同步化,阻塞调用join方法的主线程)NEW: 新建状态,线程对象已经创建,但尚未启动RUNNABLE:就绪状态,可运行状态,调用了线程的start方法,已经在java虚拟机中执行,等待获取操作系统资源如CPU,操作系统调度运行。BLOCKED:堵塞状态。线程等待锁的状态,等待获取锁进入同步块/方法或调用wait后重新进入需要竞争锁WAITING:等...
2019-10-11 18:57:01 294
原创 Java面试题 第二部分 Java基础篇
开始本部分之前,我们先解答下上一个章节最后遗留的两个问题:tomcat的类加载机制违反了双亲委派原则,为什么,又是如何进行类加载的__why?__双亲委派机制保证了类加载的唯一性,是类加载安全性的保证,但是,tomcat作为web容器,可能会部署多个项目工程,不同的项目工程对于第三方类库依赖的版本不同,需要单独的加载,所以tomcat的类加载机制违反了双亲委派原则。JVM类加载器组成:...
2019-10-11 00:15:10 322
原创 Java面试题 第一部分 JVM篇
JVM篇 写在前面的话身边的很多人不喜欢JVM面试题,因为平时开发生活中接触的比较少,也很少会主动的进行JVM的调优,但是对于JVM的基本了解还是要有的,至少在面对堆内堆外内存溢出的时候不至于手足无措,这是还是推荐阅读《深入理解JVM虚拟机》,第一次阅读的同学一定会被里面晦涩难懂的专有词汇弄得头晕脑胀,但是一定要坚持读下去,不求完全理解,有一点记忆也是好的,我的推荐是先通读一次,留下印象,后续遇...
2019-09-28 22:59:00 278 1
原创 正式内容之前想说的话
从毕业以后其实已经很久没有写博客了,这次之所以拾起笔来,也是希望把最近生活的一些感想说出来记录下来,和大家一起分享讨论,当然大家最关注的BAT,TMD面试题目的梳理也会有一步步的介绍,但是,我想说的是,不要把面试题当作是应付考试抱佛脚,从另一个角度来说,面试题其实是学习技术,理解市场需求的方向,这是我最想表达的内容,也希望大家在我整理的简单内容里能有一些自己的收获。ps多说一句:...
2019-09-27 15:15:12 151
转载 Java多线程用法
最全面的java多线程用法解析,如果你对Java的多线程机制并没有深入的研究,那么本文可以帮助你更透彻地理解Java多线程的原理以及使用方法。1.创建线程在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例。因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的
2016-07-15 16:55:06 295
原创 博乐理科教育—Web网站企划_1
1、在html模板网站模板之家选用合适html模板,download到本地2、在IDEA中创建maven web工程,复制html模板信息到工程当中3、配置IDEA的tomcat服务器相关信息4、利用maven的install命令给maven工程打包,生成相应的war包5、在tomcat下运行相应的war包6、最终页面展示效果
2016-07-13 10:19:47 509
原创 《编程之美》——CPU使用率
今天开始接触到编程之美这本书书的一开始就讲到一个问题,怎样让自己的CPU使用率保持在50%,真是个让人匪夷所思的问题不是么这里简单的介绍一下我的电脑 ThinkpadE420 普通的办公本 i5-2430处理器 双核四线程对于单核单线程的电脑而言,当我们写入一个死循环的时候,CPU占用率会直接飙升到100%而对于双核四线程而言,一个死循环会使得CPU占用率到达25%也
2015-05-14 17:47:28 1539
原创 使用Dijkstra迪杰斯特拉算法获得单源最短路径
在连通图当中 ,常常出现求出某一个点到其他各个点的最短路径问题Dijkstra迪杰斯特拉算法就是用来解决这种问题的一种方法简单的来说,Dijkstra算法就是不断的去使用贪心策略来解决问题以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率并不高。现有如下的例题:/** * 1.sure
2015-04-17 17:21:58 1357
原创 利用prim算法得到最小生成树MST
生成树来源于连通图对于一个连通图而言,若存在子图包含原图全部顶点且边的条数为顶点数减1那么这个子图就叫做原图的生成树什么叫做最小生成树呢 ,就是说在生成树的前提下,其边上的权值之和最小的生成树就叫做最小生成树如图所示 有连通图如下所示其最小生成树为prim算法的逻辑关系是这样的基于现有的图去寻找当前与现有图有邻接关系的顶点中边最短的那一条每加入一个点
2015-04-17 08:09:23 739
原创 基于邻接矩阵的BFS广度优先搜索
同前面两个小结中说道的一样直接给出程序import java.util.ArrayList;import java.util.List;/** * * @author zero * */public class adjMatrixBFS { private List visitList = new ArrayList(); //initial the matr
2015-04-15 17:36:21 2263
原创 基于邻接表实现的DFS深度优先搜索
上一篇文章中说道用邻接矩阵来实现深度优先搜索这里我们来谈用邻接表来实现深度优先搜索邻接表如下所示:由于java中对于指针的使用弱化 这里我用list来模拟链表操作import java.util.ArrayList;import java.util.List;/** * * @author zero * */public class adjTable
2015-04-13 20:47:46 1878
原创 基于邻接矩阵实现的DFS深度优先搜索
这里假设有这样的有向图我们要对他进行深度优先搜索(基于邻接矩阵)邻接矩阵的意思就是用矩阵的形式来表示图中顶点直接的邻接关系如图所示我们可以得到矩阵如下假设矩阵名字为matrixmatrix[3][4]的值表示的就是从顶点3到顶点4有向边的存在关系深度搜索的含义就是说从图中某顶点v出发:(1)访问顶点v;(2)依次从v的未被访问的邻接点
2015-04-13 19:22:02 921
原创 java实现的快速排序
/** * * @author zero * 1. we set a mid number to divide the array into two part, in the left part,all numbers are less than the mid number, in the right part, it's in contrast我们首先设置一个中间数字作为划分
2015-04-01 21:01:30 382
原创 输出它本身的Java程序
/** * * @author zero * 1. we got a file that appointed to this java file获得一个文件类型指向我们编写的java文件 * 2. create a InputStream directing to the file to read the java file (byte[] way)创建一个input
2015-03-31 17:58:55 741
原创 Java web 文件上传下载(Eclipse + Tomcat)
1. firstly 我们需要准备好两个包 分别为 commons-io-1.3.2.jar 以及 commons-fileupload-1.2.1.jar2. 我们要明确实施的方式Web页面使用file标签上传一个文件 以form标签来包装 再通过servlet的方式将form数据转发到后台Servlet后台Servlet通过request获取到form的数据之后 找...
2015-03-30 21:31:34 6083
原创 java简易计算器
只简单的说一下设计的思路1.整个计算机的组件我分为三个部分,数字按键0-9, 符号按键+-*/= ,结果框resultField2.变量解释说明private String numList = "0123456789";定义字符串包含所有的数字,因为对于数字按键的监听操作都是差不多的,通过获取数字按键的值在通过与numList的对比,就能确定数字按键的类型private
2015-03-30 11:12:07 789
原创 java反射机制浅析和使用
Reflection--反射机制一般而言,开发者社群说到动态语言,大致认同的一个定义是:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。尽管在这样的定义与分类下Java不是动态语言,它却有着一个非常突出的动态相关机制:Reflection。这个字的意思是“反射、映象、
2015-03-28 16:46:27 395
原创 java中线程的协作sleep yield wait 和 notify
线程为了协同工作,常常用到sleep yield wait方法,这样一来使得程序更具有灵活性需要注意的是:调用sleep()和yield()的时候锁并没有被释放,而调用wait()将释放锁另外需要注意的是,wait()和notify()只能在synchronized方法或者synchronized块中使用notify()通知等待队列中的第一个线程,notifyAll()通知的是等待
2015-03-26 21:35:26 621
原创 解决线程死锁
和人们所说的一样,线程死锁的解决方式就是破坏线程死锁的的产生条件,上一篇文章说到1 互斥条件 线程使用的资源必须至少有一个是不能共享的2 请求与保持条件 至少有一个线程必须持有一个资源并且正在等待获取一个当前被其他线程持有的资源。 3 非剥夺条件 分配的资源不能从相应的线程中被强制剥夺。4 循环等待条件 第一个线程等待其他线程,后者又在等待第一个线程。这里
2015-03-26 17:49:49 909
原创 java线程死锁
首先我们引入一个例子有这么两个人,一个叫做MyThread1, 一个叫做MyThread2他们都想要吃饭,但是,只有一双筷子和一碗饭并且它们被放在桌子的最左边和最右边MyThread1跑向左边,MyThread2跑向右边假设MyThread1跑的比较快,他抢到了那碗饭,但是由于体力问题,他要休息一秒再去抢筷子然而就在他休息的时候,MyThread2赶到了筷子那儿,同样由于体力问
2015-03-25 20:12:41 464
原创 java中枚举类型的简单使用
* 1. enum has equal position to class and interface枚举类型和class海油interface具有对等的地位,不要把它和int String 类型等同起来,这一点从它的形式就可以看出来 * 2. each content in enum has a index of int type在枚举类中,每一个枚举项都有一个int类型的值与之
2015-03-25 19:31:03 529
原创 Junit的简单实用(环境Eclipse)
当想要对方法进行单独的测试的时候不妨试试使用Junit使用方法/** * * @author zero * 1. ProjectName-->build path-->configure build path-->add library-->JUnit-->choose version在项目名称上右键按照上述的目录结构添加JUnit工具包 * 2. add annot
2015-03-25 18:56:11 400
原创 正则表达式使用方式以及以及简单的例子
今天对正则表达式做一个简单的小结具体使用方式如下所示 * 1. call this Pattern class's static method compile,the argument in this method is user-defined Regular Expression,return Pattern type object通过调用Pattern类静态方法compile返回
2015-03-24 21:31:57 578
原创 java_初始化与清理
1.构造器通过调用构造器,确保每个对象都得到初始化。在类的创建过程中,可以定义其构造器,这样在操作对象前其对应的构造器即会被自动调用构造器才采用与类相同的名字,同C++中的构造函数相同,即便不写出,系统会自动为相应的类加上一个不含有任何操作的默认构造器下面给出程序实例import java.util.*;class tank{ tank(){ System.out.p
2014-01-28 17:58:29 455
原创 java控制执行流程
1.if-else条件判断同C语言相同,基本用法如下if(表达式a,返回值为bool型){执行语句;}else{ 执行语句;}2.迭代 do-while ,while,for这一部分也是一样和C语言中是相同的do{执行语句;}while(表达式b,返回值为bool型)//这可以称之为直到型循环,先执行再判断//与之相对应的为while型
2014-01-23 19:28:21 452
原创 java中的操作符之三
1.直接常量import java.util.*;class tank{ static int value; static boolean equals(tank a) { return value==a.value; }}public class FirstStep{ public static void main(String[] args){ Integer i=
2014-01-22 18:32:17 552
原创 java中操作符的应用--2
4.关系操作符相等== 不相等!=观察一下程序段import java.util.*;public class FirstStep{ public static void main(String[] args){ Integer n1=new Integer(47); Integer n2=new Integer(47); System.out.println(n1==n2)
2014-01-19 16:24:09 488
原创 java中操作符的应用
前几天同学聚会什么的耽搁了进度,要重新进入节奏了,fighting!1.赋值操作符class tank{ int level;}public class FirstStep{ public static void main(String[] args){ tank t1=new tank(); tank t2=new tank(); t1.level=9; t2.level
2014-01-18 12:38:30 591
原创 java出门装以及运行的第一个程序
首先下载eclipse作为运行java程序的平台(当然不介意的话可以使用M DOS来运行,个人觉得实在是不方便)具体的下载地址如下http://www.eclipse.org/downloads/按照电脑的操作系统选择下载合适的版本废话不多说 解压安装正式进入第一个程序程序实例如下public class FirstStep{/*方法和成员*/}//基本语句建立一个
2014-01-14 19:30:29 548
原创 java起步—jdk的下载和安装以及环境的配置(windows 7或者其他的系统)
第一步:下载首先我们先进入到jdk的官网 http://java.sun.com 对于类似我的英文不是很懂的同学 以下给出具体的步骤http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html这是jdk 7的下载地址(如下图所示)看到以上的部分后选择 window
2014-01-13 19:29:01 888
原创 静态链表的创建以及基本操作
#include #include #define Max 100typedef int ElemType;/*定义每个节点的数据信息*/typedef struct Node{ ElemType data;//节点中存放的抽象数据 int next;//记录下一个节点的位置(位置由下标唯一决定)这里的next就是下个元素在结构体数组中的下标}SLNode;/*静态链表的定
2013-09-26 23:28:52 5118
原创 多项式的加法运算(等待修改)
#include #include int a[100];int main(){int i,n,x,z,k;memset(a,0,sizeof(a));printf("请输入第一个多项式的项数:");scanf("%d",&n);for(i=1;i{printf("请输入f1第%d项的指数:",i);scanf("%d",&z);printf("
2013-09-10 18:44:21 561
原创 STL之set
#include #include using namespace std;int main(){set s;couts.insert(1);s.insert(2);s.insert(3);s.insert(4);s.insert(5);coutset::iterator it;//定义set型迭代器for(it=s.begin();it!=
2013-08-20 11:08:16 452
原创 stl之string
#include #include using namespace std;int main(){string s="hello my ";coutcouts+="heart baby";coutcoutcouts.append(" !");couts.erase(s.begin());coutstring::iterator it=
2013-08-20 10:16:35 502
原创 stl模板中vector的用法以及其功能
vector是C++标准模板库中的部分内容,中文偶尔译作“容器”,但并不准确。它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。简单的使用方法如下:#include #include #include usin
2013-08-19 12:47:55 760
原创 利用txt编写网页(很基础的一部分)
以下的红色内容写在txt中存储格式为html并将其中用到的图片放入同一个文件夹中再打开就能看到效果了其基本的语法为………………………………………………………………博文观点奇葩专业网站 职业为各类六角亭奇葩服务博文视点好书不断,为读者提供最优秀的IT专业图书。//插入段落分隔线设置表格的宽和边框线粗细
2013-07-24 21:14:17 4908 1
原创 判断一个数是否只有一个峰值
这里所提及的峰值问题并不难,下列给出的方法只是一个实例,大神勿喷大体上的操作是这样的,首先找出峰值点,最小值或者最大值,然后根据最小或者最大值判断其前后的单调性,并且判断单调性是否相反,进而确定峰值数是否成立//这里的单峰只含有最大值的峰点#include #include int main(){int i,num,length,flag,flag2=0;char
2013-07-24 20:53:11 1327
SpringBoot.zip
2019-07-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人