Java
Qiao丫头
Keep Going
展开
-
浅析Java中的final关键字
谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正。 请尊重作者劳动成果,转载请标明原文链接转载 2016-03-16 15:49:45 · 295 阅读 · 0 评论 -
[Coding Time]-嗯,我就是这么记log的
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。首先 可以看下文件log4j.properties Log4J配置文件的基本格式如下:( 以我工程的log4j 配置为例)#log4j.rootCategory=DEBUG,s...原创 2019-01-29 16:16:41 · 192 阅读 · 0 评论 -
[Coding Time]-尝试手写 spring IOC
IOC :Ioc—Inversion of Control,控制反转,Ioc不是某种技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。传统Java SE程序设计: 直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC是有专门一个容器来创建这些对象,即由Ioc容器来控制对象的创建;在Ioc中, 容器控制对象...原创 2019-01-28 17:57:52 · 153 阅读 · 0 评论 -
[Thinking in java] _容器 _Map
Java中的Map包含了几种基本实现:HashMap TreeMap LinkedHashMap WeakHashMap ConcurrentHashMap IdentityHashMaphashCode() 是根类Object中的方法 因此所有Java对象都具有hashcode 散列码HashMap 就是使用对象的hashcode进行快速定位查询的,此方法较传统的get方法可以显著提高性...原创 2018-01-19 11:09:09 · 143 阅读 · 0 评论 -
[技术分享]- Synchronized与ReentrantLock的区别
Java在编写多线程程序时,为了保证线程安全,需要对数据同步,经常用到两种同步方式就是Synchronized和可重入锁ReentrantLock。相似:这两种同步方式有很多相似之处,它们都是加锁方式同步,而且都是阻塞式的同步,也就是说当如果一个线程获得了对象锁,进入了同步块,其他访问该同步块的线程都必须阻塞在同步块外面等待,而进行线程阻塞和唤醒的代价是比较高的(操作系统需要在用户态与内核原创 2018-01-17 14:41:16 · 218 阅读 · 0 评论 -
[技术分享]-volatile关键字
volatileJava提供了volatile关键字来保证可见性。(此处的保证可见性可以理解为:一个不稳定的变量,即值可能会经常改变,每次使用它的时候都到内存中进行读取,所以一般来说,多任务环境下各任务之间共享的标志都应该加volatile修饰)当一个共享变量被volatile修饰时,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,它会去内存中读取新值。volatile原创 2018-01-17 14:50:16 · 185 阅读 · 0 评论 -
JAVA笔试面试题系列之----①多线程
1. 进程和线程:进程:正在进行的程序。每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元。线程:进程内部的一条执行路径或者一个控制单元。两者的区别:一个进程至少有一个线程进程在执行过程中拥有独立的内存单元,而多个线程共享内存;2. jvm多线程的启动是多线程吗?java的虚拟机jvm启动的是单线程,就有发生内存泄露的可能,而我原创 2016-04-19 14:10:42 · 2032 阅读 · 2 评论 -
[Java笔试面试知识点自整理系列]Java线程中run和start方法的区别
两种方法的区别1) start:用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法,这里方法 run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线原创 2016-05-25 13:41:19 · 706 阅读 · 0 评论 -
[Java笔试面试知识点自整理系列]Struts1与Struts2的区别
从action类上分析:a) Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。b) Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现常用的接口。Action接口不是必须的,任何有execute标识的PO原创 2016-05-25 13:22:48 · 393 阅读 · 0 评论 -
Java_移位运算
java移位运算符不外乎就这三种:>(带符号右移)和>>>(无符号右移) 1、 左移运算符 左移运算符1)它的通用格式如下所示: value num 指定要移位值value 移动的位数。 左移的规则只记住一点:丢弃最高位,0补最低位 如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模。如对int型移动33位,实际上只移动了33%32=1位。 2)原创 2016-03-11 16:41:30 · 385 阅读 · 0 评论 -
Java_数据结构(哈希表简介)
1.什么是哈希表? 哈希表是一种数据结构,它提供了快速的插入操作和查找操作。其基于数组来实现。 2.哈希化 1)直接将关键字作为索引。 2)将单词转换成索引。 将字母转换成ASCII码,然后进行相加 幂的连乘 压缩可选值 3.压缩后仍然可能出现的问题。 冲突:不能保证每个单词都映射到原创 2016-03-11 18:44:31 · 383 阅读 · 0 评论 -
程序员面试金典(动态规划):叠罗汉问题_最长递增子序列(java解法)
题目描述:叠罗汉是一个著名的游戏,游戏中一个人要站在另一个人的肩膀上。同时我们应该让上面的人比下面的人更高一点。已知参加游戏的每个人的身高,请编写代码计算通过选择参与游戏的人,我们多能叠多少个人。注意这里的人都是先后到的,意味着参加游戏的人的先后顺序与原序列中的顺序应该一致。给定一个int数组men,代表依次来的每个人的身高。同时给定总人数n,请返回做多能叠的人数。保证原创 2016-03-10 20:38:39 · 3739 阅读 · 0 评论 -
程序员面试金典(排序与查找):变位词排序(java解法)
题目描述请编写一个方法,对一个字符串数组进行排序,将所有变位词合并,保留其字典序最小的一个串。这里的变位词指变换其字母顺序所构成的新的词或短语。例如"triangle"和"integral"就是变位词。给定一个string的数组str和数组大小int n,请返回排序合并后的数组。保证字符串串长小于等于20,数组大小小于等于300。测试样例:["ab","ba","abc原创 2016-03-09 21:50:56 · 1014 阅读 · 0 评论 -
程序员面试金典(排序与查找):元素查找(java解法)
题目描述有一个排过序的数组,包含n个整数,但是这个数组向左进行了一定长度的移位,例如,原数组为[1,2,3,4,5,6],向左移位5个位置即变成了[6,1,2,3,4,5],现在对于移位后的数组,需要查找某个元素的位置。请设计一个复杂度为log级别的算法完成这个任务。给定一个int数组A,为移位后的数组,同时给定数组大小n和需要查找的元素的值x,请返回x的位置(位置从零开始)。原创 2016-03-09 22:33:43 · 369 阅读 · 0 评论 -
程序员面试金典(动态规划):约瑟夫环问题(java解法)
题目描述约瑟夫问题是一个非常著名的趣题,即由n个人坐成一圈,按顺时针由1开始给他们编号。然后由第一个人开始报数,数到m的人出局。现在需要求的是最后一个出局的人的编号。给定两个int n和m,代表游戏的人数。请返回最后一个出局的人的编号。保证n和m小于等于1000。测试样例:5 3返回:4import java.util.*;public clas原创 2016-03-09 15:06:30 · 884 阅读 · 0 评论 -
程序员面试金典(动态规划):8(n)皇后问题(java解法)
题目描述请设计一种算法,解决著名的n皇后问题。这里的n皇后问题指在一个nxn的棋盘上放置n个棋子,使得每行每列和每条对角线上都只有一个棋子,求其摆放的方法数。给定一个int n,请返回方法数,保证n小于等于10import java.util.*;public class Queens { //Solution: 定义一个全局变量sum作为最后原创 2016-03-09 12:49:30 · 1391 阅读 · 1 评论 -
程序员面试金典(动态规划):返回某集合的所有子集(java解法)
import java.util.*;public class Subset {public ArrayList> getSubsets(int[] A, int n) { if(A==null||A.length==0) return new ArrayList<>(); Arrays.sort(A);// 数组A从小到大排序 r原创 2016-03-08 18:25:40 · 922 阅读 · 0 评论 -
[Thinking in java] _为什么要使用抽象类
感觉工作了之后没怎么用到抽象类 最近在看组内大佬的code的时候 发现很多抽象类的使用,所以去百度了一把:使用抽象类到底有哪些好处=> code by 信哥 转载注明出处/** * @author diego * @time 2019-02-26 11:29 * @description */public abstract class AbstractInstr...原创 2019-03-21 11:19:22 · 465 阅读 · 0 评论