
java
Hurricane_m
这个作者很懒,什么都没留下…
展开
-
创建一个Maven项目
参考:https://blog.youkuaiyun.com/java173842219/article/details/82468299https://blog.youkuaiyun.com/hundan_520520/article/details/53763887maven pom.xml配置https://mvnrepository.com/原创 2019-05-21 23:07:58 · 164 阅读 · 0 评论 -
Java 中的sleep()和wait()的区别
对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只...原创 2019-04-22 21:31:50 · 199 阅读 · 0 评论 -
深入理解Java并发之synchronized实现原理
深入理解Java并发之synchronized实现原理:https://blog.youkuaiyun.com/javazejian/article/details/72828483转载地址:https://www.cnblogs.com/wl0000-03/p/5973039.html在java编程中,经常需要用到同步,而用得最多的也许是synchronized关键字了,下面看看这个关...转载 2019-04-22 19:23:14 · 193 阅读 · 0 评论 -
Java设计模式 七大原则(一):单一职责原则
单一职责原则定义(Single Responsibility Principle,SRP)单一职责原则海报它说:"并不是因为你能,你就应该做"。为什么?因为长远来看它会带来很多管理问题。从面向对象角度解释为:"引起类变化的因素永远不要多于一个。"或者说"一个类有且只有一个职责"。Farhana:能解释一下吗?Shubho:当然,这个原则是说,如果你的类有多于一个原...转载 2019-04-14 14:52:19 · 775 阅读 · 0 评论 -
迭代器Iterator 中的并发修改异常 java.util.ConcurrentModificationException
import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class ConcurrentModifcationDemo { public static void main(String[] args) { List<String> list = new Arra...原创 2019-04-13 22:43:12 · 280 阅读 · 0 评论 -
Java FOREACH 实现原理 优点 以及 弊端
转自:https://www.cnblogs.com/slwenyi/p/6393366.html通过反编译得出结论在编译的时候编译器会自动将对for这个关键字的使用转化为对目标的迭代器的使用,这就是foreach循环的原理。进而,我们再得出两个结论:1、ArrayList之所以能使用foreach循环遍历,是因为ArrayList所有的List都是Collection的子接口,...原创 2019-04-12 21:30:11 · 1315 阅读 · 0 评论 -
TreeSet 几个特征 及其原理。参照源码 分析其底层实现
TreeSet几个特征1.无序:放入集合中的顺序和从集合中取出的顺序不相同2.传入的值不能重复:放入集合中的值不能重复,重复则覆盖。3.传入的值不能为null:不可以想TreeSet集合中传入null,否则编译抛出NullPointerException异常。4.排序:从集合中取出时必须按照其自然顺序排序,要求使用该集合的对象的类必须实现Compare或者在创建TreeSet时 ...原创 2019-04-12 20:49:21 · 1148 阅读 · 0 评论 -
Java设计模式 七大原则(七) 组合/聚合复用原则(Composite/Aggregate Reuse Principle CARP)
尽量使用合成/聚合达到复用,尽量少用继承。原则: 一个类中有另一个类的对象。1.概念:合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)经常又叫做合成复用原则。合成/聚合复用原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。它的设计原则是:要尽量使用合成/聚合,尽量...转载 2019-04-15 22:10:30 · 1052 阅读 · 0 评论 -
Java设计模式 七大原则(六)迪米特法则(Law Of Demeter)
"笛米特法则":这是说"你的类对其它类知道的越少越好";1.概念:一个软件实体应当尽可能少的与其他实体发生相互作用。每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。迪米特法则的初衷在于降低类之间的耦合。由于每个类尽量减少对其他类的依赖,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。迪米特法则不希望类之间建立直接的联系。如...转载 2019-04-15 22:06:58 · 642 阅读 · 0 评论 -
Java设计模式 七大原则(五)依赖倒置原则(Dependence Inversion Principle)
依赖倒置原则依赖倒置原则(Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。Shubho:这是SOLID原则里最后一个原则。这是海报它的意思是:高层模块不应该依赖底层模块,两者都应该依赖其抽象Shubho:考虑一个现实中的例子。你...转载 2019-04-15 22:02:53 · 428 阅读 · 0 评论 -
使用字符流 必须刷新缓冲区 flush
实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示。 /** * 字符流 使用输入流读取一个文件内容到cpu中,然后使用输出流将内容写出到指定位置的外部文件中。 (使用输入输出流进行了文件的复制 */ @Test void test02() { try { Reader is...原创 2019-04-18 15:40:22 · 3743 阅读 · 4 评论 -
Java多线程中的 join()方法浅谈 及 面试题
鉴于 网上许多博客对于 join()方法 只是从底层源码分析看了个大概,我没能真正理解。但直到看完这三篇文章,有一种豁然开朗的感觉。所以自己在前辈的基础上总结一下 join()方法。文1:https://blog.youkuaiyun.com/lyzx_in_csdn/article/details/79676708文2:https://blog.youkuaiyun.com/chenkaibsw/article...原创 2019-04-23 13:22:14 · 950 阅读 · 0 评论 -
java集合之间的关系(详细分析集合的操作为什么需要equals()和hasCode()方法支持)
转载地址:https://blog.youkuaiyun.com/yaoyaoyao_123/article/details/85224942先看一张图:从上图可以清晰的看到:List和Set两个接口最的区别就是List可以存放重复的元素,而Set里面的元素不可以重复。List和Set这两个接口继承自Collection接口,collection接口有一个add()方法,Collection又继...转载 2019-04-18 19:54:12 · 402 阅读 · 0 评论 -
java.lang.NoSuchFieldException: iii at java.lang.Class.getDeclaredField(Unknown Source) 异常解决
通过反射获取表单中的值封装到JavaBean时,程序可以正常运转,但控制台报了一个异常java.lang.NoSuchFieldException: iii at java.lang.Class.getDeclaredField(Unknown Source)原因是访问了一个不存在的属性iii.后续做测试的时候 将button标签 多添加了一个name属性 iii, 果不...原创 2019-05-21 22:04:39 · 5362 阅读 · 0 评论 -
java string数组转数值型(int、double)数组
今天在写一个小项目时遇到一个问题。从数据库中返回的结果集的值为字符串 如何转成我想要的数值型数组,以便于对应前端 需求的数据格式。数据库的信息 data列我存放由一串数字组成的字符串但前端需要的data 的格式是一个Double类型的数组。于是我做了一些调整if(StrColName.equals("data")) { double []data = new doubl...原创 2019-05-16 01:01:54 · 12791 阅读 · 0 评论 -
DBUtils工具的使用和详解
一, 先熟悉DBUtils的API:简介:DbUtils是一个为简化JDBC操作的小类库。以下使用的是最新版的commons-dbutils-1.4,先给个简介,以便迅速掌握API的使用。整个dbutils总共才3个包:1、包org.apache.commons.dbutils接口摘要ResultSetHandler 将ResultSet转换为别的...转载 2019-05-20 20:03:30 · 2189 阅读 · 0 评论 -
java二维数组两种初始化方法
写这篇博客的原因是因为从大一学习c语言开始 就对二维数组的声明 和初始化 一直没有搞懂。。。。直到学到了Java依旧搞得不是很清楚。先看一道Java的基础题这道题 错误的选项 是 B.二维数组的初始化的两种方式看了很多网上的博客,大部分都说是三种初始化的方式,我这里将其归为两种,有不同想法的小伙伴可以留言讨论。什么是二维数组:数组是一个容器,用来存储数据的。现在数组中存...原创 2019-04-25 00:06:39 · 48990 阅读 · 7 评论 -
java程序调用内存变化过程分析(详细)
转自:https://blog.youkuaiyun.com/Myuhua/article/details/81385609java程序调用内存分析详解(内存分析太重要了,这个类比于武学当中的易筋经,内功修为,一定要好好学,把程序调用的内存过程分析清楚后对于后期了解其它的知识就简单了。如:内存里面的连接池,单例模式,多例模式....)(一)不含静态变量的java程序运行时内存变化过程分析代码:...转载 2019-04-24 20:18:39 · 303 阅读 · 0 评论 -
java 多线程 Thread 中方法 join 、yield 的简单总结.
join方法joinpublic final void join() throws InterruptedException等待该线程终止。抛出:InterruptedException - 如果任何线程中断了当前线程。当抛出该异常时,当前线程的中断状态 被清除。 一、作用 Thread类中的join方法的主要作用就是同步,...转载 2019-04-19 19:48:54 · 370 阅读 · 0 评论 -
Java面向对象 多态的好处
多态的好处,建议参考一个百度回答:https://zhidao.baidu.com/question/217864684.html?hideOtherAnswer=true&newAnswer=1例如一段代码:class Computer { public void turnOn() { }}class PC extends Computer { public ...原创 2019-04-19 13:18:48 · 1486 阅读 · 0 评论 -
半深入理解Java属性继承
转载地址:https://www.cnblogs.com/levi1994/p/5568433.html好文推荐:http://www.cnblogs.com/111testing/p/6880831.html前几天在面试的时候又被问到了一个问题,“Java重写和重载有什么区别?”。这个问题在Java领域是一个老生常谈的问题了,事实上我认为这两个东东除了中文名长得很像以外(英文名好像...转载 2019-04-23 22:40:35 · 234 阅读 · 0 评论 -
java类中子类重写父类中的方法,父类对象用子类对象实例化以后,父类的引用如何调用父类中的被重写方法。
多态的体现。代码如下;package TestMENG;public class Base { int i = 99; public void amethod() { System.out.println(" Base.amethod() "); } Base() { amethod(); }}package TestMENG;public c...原创 2019-04-19 11:14:50 · 4804 阅读 · 0 评论 -
Java设计模式 七大原则(四) 接口分离原则(Interface Segregation Principle)
应当为客户端提供尽可能小的单独的接口,而不是提供大的总的接口。接口分离原则Shubho:今天我们学习"接口分离原则",这是海报:接口分离原则海报Farhana:这是什么意思?Shubho:它的意思是:"客户端不应该被迫依赖于它们不用的接口。"Farhana:请解释一下。Shubho:当然,这是解释:假设你想买个电视机,你有两个选择。一个有很多开关和按钮,它们看起...转载 2019-04-15 21:56:32 · 1578 阅读 · 0 评论 -
Java设计模式 七大原则(三) 开闭原则(Open Close Principle)
对修改关闭,对扩展开放。开放闭合原则Shubho:这里是开放闭合原则的海报开放闭合原则海报从面向对象设计角度看,它可以这么说:"软件实体(类,模块,函数等等)应当对扩展开放,对修改闭合。"通俗来讲,它意味着你应当能在不修改类的前提下扩展一个类的行为。就好像我不需要改变我的身体而可以穿上衣服。Farhana:有趣。你能够按照你意愿穿上不同的衣服来改变面貌,而从不用改造身体...转载 2019-04-15 21:54:35 · 648 阅读 · 0 评论 -
Java设计模式 七大原则(二) 里氏替换原则(Liskov Substitution Principle)
Shubho:"Liskov's替换原则(LSP)"听起来很难,却是很有用的基本概念。看下这幅有趣的海报:Liskov替换原则海报这个原则意思是:"子类型必须能够替换它们基类型。"或者换个说法:"使用基类引用的函数必须能使用继承类的对象而不必知道它。"Farhana:不好意思,听起来有点困惑。我认为这个OOP的基本原则之一。也就是多态,对吗?为什么一个面向对象原则需要这么说呢?...转载 2019-04-15 21:52:25 · 539 阅读 · 0 评论 -
打印整数的二进制
public class Test { public static void main(String[] args) { // TODO Auto-generated method stub //打印整数的二进制表示 System.out.println("请输入一个整数 将转为二进制数"); Scanner sc = new Scanner(System.in); i...原创 2019-04-03 21:55:21 · 731 阅读 · 0 评论 -
Java 值传递与引用传递
本文转载自公众号 Hollis对于初学者来说,要想把这个问题回答正确,是比较难的。在第二天整理答案的时候,我发现我竟然无法通过简单的语言把这个事情描述的很容易理解,遗憾的是,我也没有在网上找到哪篇文章可以把这个事情讲解的通俗易懂。所以,就有了我写这篇文章的初衷。这篇文章中,我从什么是方法的实际参数和形式参数开始,给你讲解为什么说Java中只有值传递。辟谣时间关于这个问题,在...转载 2019-03-26 13:48:41 · 214 阅读 · 0 评论 -
Java中 abstract和final 不能共存!!!
abstract & finalabstract抽象类的意义:为什么叫抽象类?是因为我们在java中定义的类对应到实际生活中就是个抽象的东西,抽象的含义就是人类难以想象的东西,非具体的东西。而抽象类的目的就是不能进行具体描述一个对象,所以抽象类不能实例化!对类修饰而言:抽象类中可以含有抽象方法和普通方法。而反过来,有抽象方法,那么一定是抽象类。因为抽象方法的目的就是让...转载 2019-03-29 19:17:19 · 1794 阅读 · 0 评论 -
Java为什么可以实现跨平台 甚至语言无关性。
java语言跨平台的原因:半编译,半解释java代码不是直接运行在CPU上,而是运行在java虚机(简称JVM)上的。 java是先把 .java文件编译成二进制字节码的 .class文件,jvm就解释执行class文件。 因为.java文件编译后形成的.class文件是一致的 。不同的操作系统有对应不同的JVM,在各个系统对应的JVM上都可以被识别解释然后运行,所以可以实现跨平...原创 2019-03-19 20:51:30 · 1617 阅读 · 0 评论 -
数据结构之动态数组(Java)
需要注意的几个点:1.泛型 使用泛型声明数组时 必须用Object类 然后强转为泛型 public Array(int capacity){ data = (E[])new Object[capacity]; size=0; }2.动态数组扩容 缩容 定义私有的resize函数。体现了Java的封装性 //动态...原创 2019-03-05 12:22:32 · 277 阅读 · 0 评论 -
Hibernate 在进行双向关联 时 jUnit不通过 控制台报错
愚蠢的一批0.0 这个问题 困扰了我三天。当我进行双向关联保存数据时,控制台报错log4j:WARN No appenders could be found for logger (org.jboss.logging).log4j:WARN Please initialize the log4j system properly.log4j:WARN See http://loggi...原创 2018-11-25 20:18:19 · 260 阅读 · 0 评论 -
Hibernate : 再调用get()方法 通过主键来查询一条记录时 报错
org.hibernate.TypeMismatchException: Provided id of the wrong type for class com.itheima.domain.Customer. Expected: class java.lang.Long, got class java.lang.Integer at org.hibernate.event.interna...原创 2018-11-12 01:25:51 · 828 阅读 · 0 评论 -
java.lang.Error: Unresolved compilation problem解决方案
java.lang.Error: Unresolved compilation problem: The method getSession() is undefined for the type HibernateUtils at com.itheima.test.Demo1.testSave2(Demo1.java:26) at sun.reflect.Native...原创 2018-11-12 00:49:13 · 10657 阅读 · 0 评论 -
mysql 8.0以上版本 + hibernate配置 --hibernate核心配置文件 hibernate.cfg.xml
原创 2018-11-11 23:03:20 · 1024 阅读 · 0 评论 -
Java中的属性覆盖 向上转型之后调用子类的变量(与父类中变量同名) 方法的问题
先上代码public class Son extends Father { public int i = 100; public void show() { System.out.println("子类 方法!!!"); } public static void main(String[] args) { Father son = new Son(); son.sh...原创 2019-04-03 22:28:42 · 4938 阅读 · 1 评论 -
Java 面向对象中执行顺序的问题
顺序为:父类的静态成员赋值和静态块(静态块和静态成员的顺序为,谁在前面谁先执行(在不出错的情况下)子类的静态成员和静态块父类的构造方法父类的成员赋值和初始化块父类的构造方法中的其它语句子类的成员赋值和初始化块子类的构造方法中的其它语句...原创 2019-04-04 10:31:27 · 322 阅读 · 0 评论 -
Java基础之 进制转换 补码 反码 原码
(不知道为什么打印输出顺序有问题 所以我做了标记 方便阅读)在Java中 整数类型 都是以补码的形式存储补码: 反码 + 1反码: 在原码的基础上符号为不变 逐位取反原码:人类计算的二进制真值 正数原码=补码=反码 Integer.toBinaryString() 输出的结果是计算机内存中真正存储的形式(补码)例如计算-11的补码:-11 原码:...原创 2019-03-24 11:28:53 · 721 阅读 · 0 评论 -
面向对象编程 测试冒泡排序
将冒泡排序写成面向对象的形式使用泛型进行比较大小的时候 需要注意 将<T>写成<T extends Comparable>,才能使用compareTo函数!详情:https://blog.youkuaiyun.com/hgtjcxy/article/details/81389018?utm_source=blogxgwz1下面是我自己编写的代码UtilSort类p...原创 2019-03-29 10:52:19 · 409 阅读 · 0 评论 -
StringBuffer和StringBuilder
收藏一哈:https://www.jianshu.com/p/64519f1b1137转载 2019-04-11 14:51:44 · 140 阅读 · 0 评论 -
Java基础之 String字符串
字符串的初始化赋值方式 1.字符串可以通过 直接赋值为 字符串常量;(直接给定的字符串就是字符串常量) String str = "Hello"; 2.字符串可以通过使用new String("初始化字符串") 方式进行初始化赋值 String str = new String("Hello"); 字符串在内存中的存储方式 1.java中常量都是存放在常量池中的(栈结...转载 2019-03-28 15:53:46 · 283 阅读 · 0 评论