java学习笔记
来日可期a
这个作者很懒,什么都没留下…
展开
-
SpringMVC操作流程
近期面试,准备一下。操作流程图:1.用户发送请求到前端控制器(DispatcherServlet);2.前端控制器请求HandlerMapping查找Handler可以根据xml配置、注解进行查找;3.处理器映射器HandlerMapping向前端控制器返回Handler;4.前端控制器调用处理器适配器去执行Handler;5.处理器适配器去执行Handler;6.Handler执行...原创 2019-10-15 20:16:30 · 118 阅读 · 0 评论 -
二分查找
面试过程中用递归方式实现二分查找,在这里总结一下://递归方式实现public static int tSearch(int[] arr,int desc,int start,int end){ while(start<=end){ int middle = (start+end)/2; if(arr[middle]==desc){ return middle;...原创 2019-10-13 10:28:01 · 88 阅读 · 0 评论 -
equals和==的区别
在面试过程中遇到过这个问题,故在这儿总结一下:==:比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指向同一个对象。比较的是真正意义上的指针操作。1.比较的是操作符两端的操作数是否是同一个对象;2.两边的操作数必须是同一类型的才能编译通过;3.比较的是地址,如果是具体的数字比较,值相等则为true。equals:用来比较的是两个对象的内容是否...原创 2019-10-12 18:58:44 · 83 阅读 · 0 评论 -
java多线程之synchronized与lock的异同
相同点都是解决线程同步问题,通过加锁来解决。差异点synchronized是系统关键字实现,系统级别实现属于重量级实现,在竞争压力不大的情况下,效率较高。lock是程序设计的实现,属于应用级别也就是轻量级实现,在竞争压力大的情况下,效果更优。...原创 2019-10-09 17:19:36 · 94 阅读 · 0 评论 -
快速排序总结
基本思想通过一趟排序,将数据分割成独立的两个部分,其中一部分的数据要比另一部分的数据都要小,然后在按此方法将这两部分的数据分别进行快速排序。排序流程首先设定一个分界值,通过该分界值将数据分成两个部分;将大于或等于该临界值的数据都放到数组右边,小于分界值的数据放到数组的左边;然后左边和右边的数据可以独立排序,重复上述步骤直到排序结束。代码实现public class Q...原创 2019-09-12 15:40:58 · 95 阅读 · 0 评论 -
JDBC连接数据库的操作步骤
创建一个以JDBC连接数据库的程序,包含7个步骤1.JDBC所需的四个参数(user,password,url,driverClass)spring.datasource.url=jdbc:mysql://localhost:3306/t1spring.datasource.username=rootspring.datasource.password=rootspring.data...原创 2019-09-11 21:02:04 · 204 阅读 · 0 评论 -
java多线程总结
首先先了解一下进程和线程的区别根本区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位所处环境:在操作系统中能同时运行多个进程(程序),而在同一个进程(程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行);内存分配方面:系统在运行的时候会为每个进程分配不同的内存空间;而对线程而言,除了CPU外,系统不会为线程分配内存(线程所使用的资源来自其所属...原创 2019-09-11 20:33:54 · 70 阅读 · 0 评论 -
常见的编译时异常和运行时异常
异常:程序当中出乎意料的执行状况异常和错误的区别:1.异常是可以捕捉的,错误捕捉不了。2.异常时继承的java.long.Expection,错误是继承的java.long.Error两者均是继承java.long.Throwable常见的错误:一般是硬件导致的严重问题为错误,如内存溢出、磁盘写满、驱动器坏掉等等编译时异常:编译时必须捕捉或抛出处理的异常,比如IOExpection,其显著...原创 2019-09-02 18:46:09 · 821 阅读 · 0 评论 -
return和finally的执行顺序
return执行时,先会将后面的表达是的值,置于返回栈的顶部(此为方法的最终返回值),然后去执行finally的代码return的最后返回值取决于return后面的表达式的值此处共涉及三个操作:序号1是return最终的返回操作、序号2是return后面的表达式、序号3是finally的执行,其执行顺序为:序号2>序号1>序号3示例public class Test01 {...原创 2019-09-02 18:26:15 · 381 阅读 · 0 评论 -
final,fianlly,finalize的区别
final:是修饰符,修饰的类、变量或方法不能够改变或继承finally: 捕获异常时,不管有无异常,都会被执行finalize:用在垃圾回收的时候,相当于手动标识回收...原创 2019-09-02 17:24:57 · 110 阅读 · 0 评论 -
斐波那契数列实现
斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,…这个数列从第3项开始,每一项都等于前两项之和。具体代码实现public static int fiber(int location){ if(location<1){ return -1; } if(location ==1 || location =...原创 2019-09-02 17:20:23 · 138 阅读 · 0 评论 -
java多态剖析
多态一个事物的多种不同的表示方式,比如:狗都会叫,狼青、黑被、金毛等叫的都不一样多态的必备的表现形式(必须有继承,必须有重写,必须是父类的引用指向子类的对象)示例public class Dog { public void wow(){ System.out.println("一般狗的叫"); }}public class Dog01 extends Dog { @Ov...原创 2019-09-02 17:09:10 · 72 阅读 · 0 评论 -
override和overwrite的区别
override(重载)是发生在类内,名称必须相同,参数不一样,返回值没有区分性overwrite(重写)是发生在类间,必须有继承,方法名相同、参数名相同、顺序、类型必须相同,返回值也相同(抛出异常可以相同,如果不同的话,子类抛出的异常一定是小于或等于父类的异常等级)...原创 2019-09-02 16:56:42 · 5375 阅读 · 1 评论 -
JDK和JRE的区别
jdk和jre的区别jdk就是java的开发工具集,顾名思义就是你做开发用的,其中包括javac,也就是java compiler等。jre(java runtime environment),就是java程序的运行环境。你所写的java程序在经过javac编译后会形成字符行文件,这个java的中间文件,计算机是看不懂的,而这个文件是给jvm(java的虚拟机)用的,由jvm进行解释后...原创 2019-09-02 16:48:54 · 96 阅读 · 0 评论 -
path和classpath的作用与配置
JAVA_HOME:指定JDK的安装路径,作为全局变量用作后面配置的变量。Path:windows系统根据path环境变量来查找命令。path环境的值是一系列路径,如果能通过path找到这个命令,则该命令是可执行的。否则报"xxx 命令不是内部或外部命令, 也不是可运行的执行程序或批处理文件"%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;classpath:指定了运行...原创 2019-09-02 16:43:18 · 243 阅读 · 0 评论 -
List转JSONArray和JSONArray转List
1.List转JSONArrayList<T> list = new ArrayList<T>();JSONArray array= JSONArray.parseArray(JSON.toJSONString(list));2.JSONArray转ListJSONArray array = new JSONArray();List<EventColAtt...原创 2019-08-19 20:59:33 · 153926 阅读 · 11 评论 -
java排序总结
冒泡排序基本思想:两个数比较,大的下沉,小的冒上来。过程:比较两个数,如果第二个数小就交换位置。每遍历一次就找的一个最大值放在最后。public static int[] budleSort(int[] arr){ int temp; for (int i = 0; i < arr.length-1; i++) { for (int j =0; j<arr.length...原创 2019-08-04 17:04:05 · 70 阅读 · 0 评论 -
java 创建数组的几种方式
数组的声明与创建以int类型为例,声明并创建一维数组声明整型数组:int [ ] arr 或 int arr [ ];创建数组: 如果在创建数组的同时不初始化数据则必须指定其大小 arr = new int [3]; 如果在创建数组的同时不指定其大小则必须初始化数组 arr = new int [ ]{ 1,2,3 };数组定义之后,长度不可改变 内容也不可以更改。...原创 2019-08-04 15:06:14 · 2413 阅读 · 0 评论 -
java控制台输入
java控制台输入格式一: Scanner sc = new Scanner (new BufferedInputStream(System.in));格式二: Scanner sc= new Scanner (System.in);读入一个字符串:String str= sc.next();读入一整行数据:String line=sc.nextline();读入一个整数: Int v...原创 2019-08-04 14:41:05 · 206 阅读 · 0 评论