程序员要有梦想

程序员要有梦想

IDEA多模块中单独模块打war包
IDEA中Maven多模块项目分别打war包失败问题解决方法maven多模块中,模块之间存在依赖关系,如果在子模块直接使用mvn命令打war包,会提示找不到jar包.示例如图出错是因为maven中引用的jar包默认会去mavenCentral查找,而我们本地的模块不可能会在maven仓库,所以就会报错. 解决方案如下1.打开IDEA的MAVEN面板 2.选择maven的war包插件(如果没有,请在pom文件中添加maven打war包的插件) 3.编辑war包编译的规则勾选checkbox非常关键,只有勾选了才能解决模块依赖无法找到jar包的问题 这句英文解释了在多模块中,会先在works...
详解Android打包上传使用AAR
最近在做基础功能和架构搭建,所以会将基础功能进行封装,并提供一份远程依赖.在使用过程中踩了很多坑.特地进行记录   不想看分析和流程的可以直接点击查看,重点关注工程的三个gradle文件和相关注释,MainActivity有引用库的类示例示例代码   在Android中使用第三方的库和自己的库,无论是远程依赖还是本地依赖,通常会选择JAR和AAR的形式.而AAR相比JAR包可以包含资源文件.可以有AndroidManifest文件.所以都会建议使用AAR包的形式进行打包.  网上很多示例都只是封装了自己的代码,而涉及到第三方的SDK引用,就避而不谈,或者是使用jar包的形式.但是使用j...
Thinking In Java读书笔记-第三章-操作符
方法调用中的别名问题. 方法中的参数(引用类型),实际上是持有传入对象的引用,所以在方法内对变量的操作,会最终反应到传入的对象. 例子1234567891011121314151617class Letter{ int num;}public class PassObjc{ static void change(Letter l){ l.num = 20; } public static void main(String[] args){ Letter letter = new Letter(); ...
Thinking In Java读书笔记 - 第二章 - 一切都是对象
一切都是对象  Java基于C++,但是Java假设我们只是进行面向对象的程序设计,所以摒弃和优化了很多C++设计上过于复杂的问题.在Java中(几乎)一切都是对象. 对象的存储位置 寄存器.最快的存储区,位于处理器内部. 堆栈-位于通用RAM(随机访问存储器),在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配. 9种基本类型,int,long..等,直接存放于堆栈中. 堆(heap)-一种通用的内存池(也位于RAM),堆内存用来存放由new创建的对象和数组.通过垃圾回收器进行对象生命周期的管理,这种灵活性的代价在于在堆中进行分配和清理,可能会比在...
Thinking In Java读书笔记 - 对象导论
什么是对象  对象具有状态,行为和标识.意味着每一个对象可以拥有内部数据(这些数据给出了该对象的状态)和方法(它们产生行为),并且每一个对象都可以唯一地与其他对象进行区分开来.例如每一个对象在计算机内存中都有唯一的内存地址. 每个对象都提供服务  将对象理解为”服务提供者”,每个对象都有特定的服务,通过组合不同的服务,解决不同的问题,同时这样理解有助于提高对象的内聚性 OOD中的单一职责原则,一个类只负责一个功能领域中的相应职责. 封装(隐藏具体实现)  通过隐藏具体的实现,只向调用方暴露有用的方法,也可以称为访问控制. 个人理解:就是代码封装,通过private,public等修...
重识Java多态
今天面试被问到了Java多态的知识点 面试官:  äº†è§£å¤šæ€å—,说一说你对多态的理解我: balabala..面试官: çŸ¥é“多态是如何实现的吗我: æ¶‰åŠåˆ°äº†æˆ‘的知识盲区… 赶紧回去拿起Thinking In Java看一遍多态的章节.. 作为面向对象中的一个重要特征,多态的原理必须要掌握.多态:  多态通过分离做什么和怎么做,从另一个角度将接口和实现分离开来,多态不但能够改善代码的组织结构和可读性,还能创建可拓展的程序.  多态也被称为动态绑定,后期绑定或运行时绑定. 方法调用绑定在考虑这个问题之前先看一段代码123public enum Not...
Android消息机制小结
Android消息机制: 主要是指Handler的运行机制,同时Handler需要MessageQueue和Looper的支持. Handler的主要作用: 将一个任务切换到某个指定的线程中执行 Android中使用消息机制的原因: Android系统规定UI只能在主线程进行,如果在非主线程中执行会抛出异常,线程的检验由ViewRootImpl的checkThread方法完成.12345void checkThread() { if (mThread != Thread.currentThread()) { throw new...
抛弃xml,通过Java配置搭建SpringMVC
最基础的SpringMVC项目通过Java配置搭建 一直以来SpringWeb项目都是通过xml配置,但是其实从Spring3开始,就已经逐步完善了Java配置,并且比xml更加易读. 1.引入SpringMVC和Spring的包,引入JSP相关包Maven引入 文末附完整maven代码 1234567891011121314151617181920212223242526272829<!--JSP相关jar包--><dependency> <groupId>javax.servlet</groupId> <arti...
SpringMVC文件上传
使用SpringMVC进行文件上传步骤1.配置MultiPart解析器,使用StandServletMultipartResolverJava配置 12345/使用StandardServletMultipartResolver @Bean public MultipartResolver multipartResolver() throws IOException { return new StandardServletMultipartResolver(); } 如果只配置了MultiPart解析器,是无法设置文件上传大小,文件存放路径的,所以需要配...
HashMap分析小结
HashMap是Java使用频率很高的容器对象,内部使用了很多优化算法,源码非常值得学习. 关于HashMap 非线程安全 HashTable对put和get使用了synchronized关键字,线程安全,但是已经被废弃,ConcurrentHashMap是推荐使用的线程安全,高并发Map实现 key-value存储 key和value都可以为null,多个为null的key会被后面的覆盖 key要求为不可变对象(引用类型必须重写hashCode和equals方法) 为了确保同一个对象的hash计算后的值唯一,不同的对象hash计算后的值一定不等. HashMap内部存储结构为数...
Cicinnus
不想一生碌碌无为,还安慰自己平凡可贵