java方面
文章平均质量分 51
little_newBee
正在努力学习的小小菜鸟
展开
-
java.util.Timer类可以实现多线程一样的功能
今天学到了一个Timer定时器类,这个类可以在某些时候替代多线程来使用,Timer timer = new Timer();timer.schedule(new TimerTask(){public void run(){//自己的代码}},2000,2000);第二个参数表示执行到这个函数时两秒后触发,第三个参数表示以后每隔2秒触发一次。它不会影响主线原创 2016-03-12 16:01:46 · 490 阅读 · 0 评论 -
自己编写一个native方法
1.建立java class,并写出自己的native方法2.javac编译3.javah -jni 类名 ,生成.h文件4.自己建立一个.cpp文件,实现.h的方法。5.将jdk文件夹下面的include目录中的jni.h和子目录win32下面的jni_md.h放入到class文件一起的目录。6.利用visual studio中cl/LD D:\xx\xx.cpp 生成x.dll文件。7.java原创 2017-03-25 14:18:09 · 700 阅读 · 0 评论 -
java 强,软,弱,虚引用
强引用:就是一般的引用,之所以称之为强引用,是因为如果不手动置空(例如:str=null),那么只有到程序终止 ,内存才会释放。这样会造成内存溢出。软引用:SoftReference ,Person p = new Person();SoftReference soft = new SoftReference<>(p); 将强引用作为参数传入,会得到一个弱引用对象,如果想继续原创 2017-03-25 14:23:21 · 284 阅读 · 0 评论 -
说说MyBatis配置文件中${}与#{}的区别
举个栗子:select * from ${tablename} where id=#{id} and name=#{name};上面的sql语句中,tablename使用了$,字段值使用了#,原因在于,tablename在sql不需要使用双引号,而字段值(varchar,date等类型)一般都是用双引号,所以这里区别都已经很明显了,美元符号不会自带引号,#会自带引号,明白之后就可以灵活运用了~原创 2017-05-17 17:02:08 · 532 阅读 · 0 评论 -
java7,8的几个特性(自己的理解,大神们多指教)
Java7新特性(1)Switch中支持string类型啦,多么振奋人心的消息!变得和js一样Java7新特性(2)支持try语句块申请更多空间,自动释放资源。十分nice的一个特性,麻麻再也不用担心我忘记close资源了。Java8新特性Java8中很明显的就是将函数式编程变得更加明确,函数升级为一等公民。Lambda表达式,Stream流是两个重点。目前我也只是入入门。希望有什么说的不好原创 2017-07-11 14:26:52 · 3171 阅读 · 0 评论 -
Freemarker的初探,有小案例
最近才听说这个freemarker的模板引擎。说是要比jsp好很多。于是上网查了一下,下面摘抄一下大神的总结:不编译成class文件,不占用jvm内存。直接加载,freemarker借助于一个模板文件,然后解析后输出到浏览器。效率更高。(与1道理差不多)运行时嵌入模板(目前没有体会)支持jsp标签,那套强大的标签现在可以拿来用了。不过指令变了空值检测处理写法简单有共享变量支持json原创 2017-07-11 14:44:36 · 372 阅读 · 0 评论 -
ojdbc操作oracle时间类型字段的处理
下面是mybatis的一个例子createtime >to_date(‘start′,′yyyy−mm−ddhh24:mi:ss′)andcreatetime<todate(′{start}','yyyy-mm-dd hh24:mi:ss') and createtime<to_date('{end}’,’yyyy-mm-dd hh24:mi:ss’)即,将java中时间字符串,使用to_date函原创 2017-07-20 17:36:53 · 506 阅读 · 0 评论 -
MyBatis传入参数为集合、数组SQL写法
正常cmd编码方式为gbk,如果查看某些东西需要utf8的编码。那么就需要更改编码。1.cmd中输入:chcp 65001 2.cmd的设置中设置新的字体,Lucida Console 3.done 4.想要再变回gbk:chcp 936备注;win10部分可能需要特殊处理。因为这个设置是设置一个cmd窗口的编码。在进行运行批处理文件时,点击就进入了一个cmd窗口,因此没有条件去设置,那怎么办原创 2017-08-24 17:04:34 · 1212 阅读 · 0 评论 -
把spring-boot项目部署到tomcat容器中
大神写的部署步骤,亲测可用,最后的mvn clean 步骤时:先mvn clean 然后mvn package打包成一个war包。 题主直接使用了mvn clean package的合成命令,如果是idea这类ide的小伙伴不想直接使用命令行的话,就分步骤写即可。http://blog.csdn.net/javahighness/article/details/52515226转载 2017-08-29 11:21:09 · 542 阅读 · 0 评论 -
Spring Aop中四个重要概念,切点,切面,连接点,通知
直说正题:1. 通知: 就是我们编写的希望Aop时执行的那个方法。我们通过Aop希望我们编写的方法在目标方法执行前执行,或者执行后执行。2. 切点:切点就是我们我们配置的满足我们条件的目标方法。比如我们规定:名字前面是select开头的才执行我们自定义的通知方法。那么这些select开头的方法就是切点。3. 连接点:连接点可以说是切点的全集。切点是连接点的子集。也可以理解为,连接点是我们没有定义原创 2017-09-25 23:32:52 · 11132 阅读 · 12 评论 -
几个常用的idea快捷键
alt+enter:获取提示,例如导包提示ctrl+shift+“/”:添加注释或者取消注释ctrl+alt+向下:复制一行alt+向上/下上:将这一行移动到向上或向下alt+insert:显示getter/setter列表alt+f8:调试时退回到上一步(但是继续单步调试时,这步不会重新走过,知识光标移动)ctrl+shift+向左或者向右:查看源代码时很有用,作用是返回至上次浏览的位原创 2017-10-27 15:32:22 · 339 阅读 · 0 评论 -
Maven中module和parent标签的填写方式
都知道,maven项目间依赖是双向绑定的(这个是自己瞎说的词,自己理解起来比较容易),即像树结构一样,一个子模块只能有一个父模块,父下面有多个子。子模块使用parent标识父,父模块使用module标识子。自己开始没有认清Maven的一些细节知识,这里做一下笔记算是,方便以后查找。module里面的值填写的是以当前路径为起始的路径,这里举一个不规范的例子,我的子模块在父模块的上一层,那么,父模块的m原创 2017-11-10 15:03:33 · 5059 阅读 · 0 评论 -
java web中遇到的乱码问题(Get,Post)
说一下web开发中遇到的乱码问题,直接讲解一下程序是以何种方式进行编码解码的,那么就可以自己根据这个规律查找错误了,而且思路清晰。Url的编码和解码。(不包括?后面的参数)我们平时直接输入到浏览器的url地址栏上的地址,例如:https://www.baidu.com 这里提到的是不加参数的,因为参数是单独进行编码的。这里的Url根据浏览器的不同编码方式也不同。我用到的谷歌,火狐,ie原创 2018-01-12 16:59:57 · 348 阅读 · 0 评论 -
针对Jrebel激活失效问题的解决方案
用了idea挺长时间了,今天才发现这个热更新的插件,Jrebel,在网上找到了安装指南,不料,在激活这块栽了。我激活时直接报了错,在网上也没有找到类似的错误,自己估计是这个license server失效了。那么怎么办呢?,细心的小伙伴应该会找到一些大神说的如下网址:https://my.jrebel.com ,访问它并且使用侧面的facebook或者twitter账号进行登录即可。这里原创 2018-01-22 23:01:41 · 13856 阅读 · 4 评论 -
idea使用mybatis-plugins,出现Mybatis Plugin: Mybatis Plugin is not activated yet. Click here to enter you
这是由于此插件是要收费的,所以要你输入licence,别着急这里提供了一个破解方法。https://github.com/myoss/profile.git 使用git clone将上面的包下载下来 创建一个文件夹;进入,执行git clone https://github.com/myoss/profile.git 下载到本地即可我用的是idea2015版本的,所以我使用idea/plu原创 2017-08-11 14:26:25 · 6506 阅读 · 2 评论 -
Java中的LongAdder类简单的说明
要说这篇博客只能算个简单说明吧,我个人对于看源码其实并不是很有心得,只是因为上了年纪,二十又四,在此记录一下,怕是过后忘记罢了。LongAdder,在研究并发时看到了这个类,jdk8的新类,我对于jdk8的新特性还没完全体验完,jdk10都出来了,好像是可以写var这种弱类型引用了吧,变化真是太快了,不多说废话了,来说今天的主角。它号称比Atomic更高效,那么就一起看看源码吧,建议打开i...原创 2018-05-17 16:08:04 · 2105 阅读 · 1 评论 -
spring中的@Bean是否一定要与@Configuration一起用
在使用spring的过程中,一直都看到写代码时@Bean总是与@Configuration一起使用,那么是否真的是使用@Bean一定需要@Configuration呢?? 查了很多资料,终于找到了。鉴于大部分国内查到的资料不没有关于这个问题的解释,即一篇博客记录下来,有同类疑惑的人可以看一下。@Bean作用于方法上,想单独使用肯定是不可能的了,想想也知道,起码要扫描到类嘛(抛除配置文件方式,只...原创 2018-05-20 17:07:09 · 7895 阅读 · 11 评论 -
关于重载和重写
方法重写:1.子类重写方法的参数列表必须相同 2.子类修饰符大于等于父类修饰符 3.子类抛出异常类型小于等于父类异常 4.子类返回值类型要小于等于父类方法重载: 1.参数列表必须不同 2.返回值,修饰符相同不相同都可以 3.函数名必须相同原创 2017-03-25 14:17:21 · 299 阅读 · 0 评论 -
泛型擦除的局限
1.<>中不能填写基本数据类型2.不能在进行比较时使用 :a instanceof Pair 这是不允许的,这个比较发生在运行时,所以运行时是没有泛型存在的。3.数组实例化时不允许使用。 Pair[] pair = new Pair [5]; //运行时被翻译成 Pair[] pair = new Pair[5]; //做这样一步操作 Object原创 2017-03-25 14:16:11 · 355 阅读 · 0 评论 -
利用java来访问网站
利用URL类来访问URl url = new URL("http://www.baidu.com");//创建url对象HttpUrlConnection huc = (HttpURLConnection)url.openConnection();//根据上面的网址上的协议,我们可以知道它是http的,这里是创建连接对象//这里设置连接的一些属性,我这里就省略了原创 2016-02-03 23:21:13 · 2258 阅读 · 0 评论 -
第二天复习多线程的笔记整理
多线程之间的数据既是共享的也是独立的!现在一般接触到的是共享数据,独立就是各个线程之间操作静态变量(举个例子),但是要求各个线程最后的结果各个线程之间互不干扰,这就是线程间的独立ThreadLocal类:用于线程之间独立数据存储的一个类,一个对象,只能为一个线程存储一个数据,它原理类似于map集合,key是当前线程,value是自己要存储的数据。原创 2016-03-13 20:57:01 · 363 阅读 · 0 评论 -
java多线程的线程池
Executors.newScheduledThreadPool(int):相当于Timer定时器的作用.int值代表有几个线程。再调用其.schedule()方法,就是启动一个定时的任务,池子里有3个线程容量,类似Executors.newFixedThreadPool(int);一样,它是返回线程池,启动的任务多了,其余任务就在那里等待。这是一个简单模拟线程池的代码:EEEEE类我们把原创 2016-03-13 21:14:43 · 335 阅读 · 0 评论 -
对java泛型的认识。
泛型是jdk1.5以后出现的新的机制,可以将类型异常在编译时期被发现。那么什么时候用到它呢?泛型分为:泛型定义在类上,定义在方法上,定义在静态方法上,定义在接口上。定义在类上时:一般是某类变量在此类中多处被用到,但不确定类型。定义在方法上:一般是形参类型不确定。定义在接口上:与定义在类上意义相似,子类在实现或者继承其时分两种情况:1.子类也不确定原创 2016-03-14 16:47:36 · 408 阅读 · 0 评论 -
静态内部类,成员内部类,外部类之间的一些知识总结
静态内部类又可以说是静态嵌套的,它知识藏在外部类里面的外部类。成员内部类就相当于一个成员函数的定位。它们之间又有什么访问权限呢?成员内部类和外部类:因为成员内部类就相当于一个成员函数一样,所以成员内部类可以直接访问外部类的所有成员。;外部类要访问成员内部类就需要实例化它。这很容易理解。 需要注意的是:成员内部类不能访问外部类的临时变量。这是为原创 2016-03-14 21:15:49 · 2577 阅读 · 0 评论 -
public static <T extends Comparable<? super T>> void sort (List<T> list)的理解
public static > void sort (List list)(1)首先:public static void sort(List list)(2)为了安全性加泛型:public static void sort(List list)(3)想要排序先比较,要有可比较性,因此T必须是Comparable的子类:public static exten转载 2016-03-14 23:00:23 · 1028 阅读 · 0 评论 -
老生常谈,private,protected,无修饰,public问题
private 权限最高,除了本类之外,其他任何类不能直接操作。无修饰符一般叫做友好修饰,层次第二,只有本包的类可以访问它,外包即使是子类也无权访问。protected是保护型,本包可以访问,外包除了子类以外都无权访问public 权限最低,所有类都可以访问。原创 2016-08-01 00:30:29 · 473 阅读 · 0 评论 -
谈一谈多态忠成员变量,方法问题
多态:Fu fu = new ZI()这样一个简单例子都很熟悉,为什么会出现调用函数是子类,而成员变量是父类呢?下面说一下我自己的见解:编译时期,栈中存的引用是父类,因此调用方法与变量时只能调用父类的,不能调用子类独有的,因为java认为它现在是父类,到了运行时,fu这个引用存的地址指向子类这个对象,所以在调用时调用的是子类的函数(如果被覆盖了),可是这么说来调用变量时变量应该是子原创 2016-08-01 01:21:16 · 307 阅读 · 0 评论 -
成员变量多态问题
问题答案如下截图所示:原创 2016-10-26 22:48:55 · 386 阅读 · 0 评论 -
序列化的一些小事情
什么是序列化(what)序列化是java本身提供的一种保存对象的方式。虽然我们可以自己提供方法保存,但是官方提供的无疑是更加完善和靠谱的。序列化注意事项(caution)序列化的对象需哟实现java.io.Serializable接口,并且如果这个类是父类,子类将同样拥有序列化的功能。序列化只会保存对象的非静态成员变量,无论是public还是protected或者是private,都保存。但是其原创 2016-10-27 21:04:29 · 274 阅读 · 0 评论 -
枚举类型的讲解
初见接触了枚举类型之后突然想到了一些什么,这里说一下自己的见解,或者说如何记忆枚举的用法。枚举看上去像是单例。之所以这么说它有许多类似的东西,就像枚举的自定义构造函数永远不能是public必须定义为private。枚举的几个值就是单例模式下的对象,使用者不能再构造,只能使用这几个,并且它可以用==符号判断是否相同,利用内部的hashcode方法。那几个枚举名称就是对象名,可以自定义成员变量,成员方法原创 2016-10-27 21:13:24 · 305 阅读 · 0 评论 -
java.io.Console类
这个类中有几个方法,但是它只适用于标准输出,就是说你在控制台上执行java helloworld 这种命令来执行文件时它是好使的,因为它基于标准输入输出。或者使用ItelliJ Ideal的控制台方式也可以。所以使用时要看清需求。举例:Console console = System.console();String username = console.readLIne("原创 2017-01-16 22:18:01 · 404 阅读 · 0 评论 -
foreach不能像iterator一样在便利过程中操作元素
import Java.util.ArrayList;import java.util.Collection;import java.util.Iterator;public class Name { private String firstName,lastName; public Name(String firstName, String las转载 2017-01-12 23:32:57 · 436 阅读 · 0 评论 -
Arrays.asList;List.toArray();collections.copyOf方法
Arrays.asList():返回一个List。内部有一个继承自AbstractList的一个ArrayList类,里面操作的是参数传进来的数组成员。是将list中的方法重写了,本质改变了,叫它视图方法。List.toarray():底层调用Arrays.copyOf()方法,建立一个数组,使用iterator和for循环结合进行遍历,并将it.next()赋值给事先定义好的数组变量r[i]。其中原创 2017-03-25 14:04:50 · 760 阅读 · 0 评论 -
EnumMap
EnumMap用来存储key为枚举类型的集合容器。因为它的效率要更快。 为什么呢??EnumMap将key,value分成两个一元数组进行存储。只要知道了索引,那么就很快速的进行add。因此,速度要比其他集合要快,仅限于用于Enum。Enum.ordinal()方法会返回枚举实例在Enum类中的索引,类似于数组下标,从0开始。原创 2017-03-25 14:08:18 · 214 阅读 · 0 评论 -
Iterator与foreach遍历
Iterator遍历时为何要remove之前跟一个next??iterator遍历是属于指针跟踪。开始指针指向一个空。每next一次就指向下一个节点,当remove一次,就将last变量重置为-1,将cusor=last。remove方法进入时会预先判断last是否小于0,成立会抛出异常。这一机制使得remove前必须跟next。很多说法解释道:iterator是要维护一个存有数据的引用链表,如果只原创 2017-03-25 14:10:17 · 451 阅读 · 0 评论 -
java中 byte相加会生成int
最近在刷题时看到了如下题目: public static void main(String[] args) { byte b1 = 1,b2=2,b3,b6; final byte b4=3,b5=4; b6=b4+b5; b3=b1+b2; System.out.println(b3+""+b6); }...原创 2018-07-05 15:32:23 · 2046 阅读 · 0 评论