随笔分类 -  Java

Java——For Android
摘要:背景: 公司新的微服务项目都用jhipster脚手架来开发,这篇博客是jhipster里面涉及到技术的汇总目录 一、官方文档中涉及到的技术栈 前端技术栈 Angular / React / Vue Responsive Web Design with Twitter Bootstrap HTML5 阅读全文
posted @ 2019-07-30 11:48 cateatmycode 阅读(293) 评论(0) 推荐(0)
摘要:一、背景 工作中越来越发现对基础理解的重要性,所谓基础不牢,地动山摇。所以抽了点时间看看几本Java体系的电子书,并做笔记,如下: 二、近期要看的电子书 1、Spring实战(第4版) 2、Spring实战英文版(第5版) 3、深入实践Spring Boot 4、Spring Boot实战 5、Sp 阅读全文
posted @ 2019-07-20 14:17 cateatmycode 阅读(567) 评论(0) 推荐(0)
摘要:第一部分——java基础程序设计 一:java语言特色 1:语言有点:“一次编写,到处运行” 2:相对于C++A:提供了对内存的自动管理;B:去除了C++语言中的“指针”;C:避免了赋值语句(如a=3)于逻辑运算语句(如a==3)的混淆;D:取消了多重继承Java是一种解释型语言,所以它的执行效率相 阅读全文
posted @ 2018-03-18 16:48 cateatmycode 阅读(522) 评论(0) 推荐(0)
摘要:办公自动化:OA 客户关系管理:CRM人力资源:HR 企业资源计划:ERP知识管理:KM 供应链管理:SCM企业设备管理系统:EAM 产品生命周期管理:PLM面向服务体系架构:SOA 商业智能:BI项目管理:PM 流程管理:WorkFlow 文本型:char——char类型用来表示单个字符。一个ch 阅读全文
posted @ 2018-03-18 16:48 cateatmycode 阅读(354) 评论(0) 推荐(0)
摘要:HMAC的定义。 定义HMAC需要一个加密用散列函数(表示为H)和一个密钥K。我们假设H是一个将数据块用一个基本的迭代压缩函数来加密的散列函数。我们用B来表示数据块的字长。(以上说提到的散列函数的分割数据块字长B=64),用L来表示散列函数的输出数据字长(MD5中L=16,SHA—1中L=20)。鉴别密钥的长度可以是小于等于数据块字长的任何正整数值。应用程序中使用的密钥长度若是比B大,则首先用使用散列函数H作用于它,然后用H输出的L长度字符串作为在HMAC中实际使用的密钥。一般情况下,推荐的最小密钥K长度是L个字长。(与H的输出数据长度相等)。更详细的信息参见第三部分。 我们将定义两个固定且不 阅读全文
posted @ 2012-08-29 14:29 cateatmycode 阅读(1115) 评论(0) 推荐(0)
摘要:sourceforgehttp://www.sourceforge.netjava.nethttp://www.java.netwww.eclipse.orgwww.opensource.orgLombozhttp://www.objectlearn.com/index.jsp(J2EEplugin for Eclipse)htmlAreahttp://sourceforge.net/projects/itools-htmlarea/(所见即所得的在线HTML编辑器)XmlBuddyhttp://www.xmlbuddy.com/(XMLEditor plugin for Eclipse)JF 阅读全文
posted @ 2012-08-21 12:51 cateatmycode 阅读(709) 评论(0) 推荐(0)
摘要:1什么是单点登陆单点登录(Single Sign On),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。2单点登陆的技术实现机制如下图所示:1)当用户第一次访问应用系统1时,因为还没有登录,会被引导到认证系统中进行登录2)根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该给用户返回一个认证的凭据——ticket3)用户再访问别的应用的时候(3,5)就会将这个ticket带上,作为自己认证的凭据。应用系统接受到请求之后会把ticket送到认证系统进行校验,检查ticket的合法性(4,6 阅读全文
posted @ 2012-08-15 19:11 cateatmycode 阅读(605) 评论(0) 推荐(0)
摘要:jdk1.5引入了自动装箱(autoboxing)与自动拆箱(unboxing),这方便了集合类以及一些方法的调用,同时也使初学者对其感到非常之困惑。在此,我们来揭开其神秘的面纱。首先,需要厘清一些概念:1、Integer是一个类,用Integer声明一个变量其是一个对象类型(或者说引用类型);int是基本类型,用int声明的变量是非对象类型,即不能在其上调用方法。2、“==”作用于对象上的时候,其比较的是对象的引用本身的值(或者说对象的地址更容易理解),而作用于基本类型的时候比较的就是基本类型的值。接下来看一段代码:public class Test { public static v... 阅读全文
posted @ 2012-06-12 22:35 cateatmycode 阅读(305) 评论(0) 推荐(0)
摘要:override->重写(=覆盖)、overload->重载、polymorphism -> 多态override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。重写(覆盖)的规则: 1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载. 2、重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private)。 3、重写的方法的返回值必须和被重写的方法的返回一致; 4、重写的方法所抛出的异常必须和被重写方法的所抛出的异常一致, 阅读全文
posted @ 2012-06-08 18:34 cateatmycode 阅读(277) 评论(0) 推荐(0)
摘要:0.Java 中多线程同步是什么?在多线程程序下,同步能控制对共享资源的访问。如果没有同步,当一个 Java 线程在修改一个共享变量时,另外一个线程正在使用或者更新同一个变量,这样容易导致程序出现错误的结果。1.解释实现多线程的几种方法?一 Java 线程可以实现 Runnable 接口或者继承 Thread 类来实现,当你打算多重继承时,优先选择实现 Runnable。2.Thread.start ()与 Thread.run ()有什么区别?Thread.start ()方法(native)启动线程,使之进入就绪状态,当 cpu 分配时间该线程时,由 JVM 调度执行 run ()方法。3 阅读全文
posted @ 2012-06-01 02:53 cateatmycode 阅读(174) 评论(0) 推荐(0)
摘要:1.切面(aspect):要实现的交叉功能,是系统模块化的一个切面或领域。如日志记录。 2.连接点:应用程序执行过程中插入切面的地点,可以是方法调用,异常抛出,或者要修改的 字段。 3.通知:切面的实际实现,他通知系统新的行为。如在日志通知包含了实 现日志功能的代码,如向日志文件写日志。通知在连接点插入到应用系统中。 4.切入点:定义了通知应该应用在哪些连接点,通知可以应用到AOP框架支持的任何连接点。 5.引入:为类添加新方法和属性。 6.目标对象:被通知的对象。既可以是你编写的类也可以是第三方类。 7.代理:将通知应用到目标对象... 阅读全文
posted @ 2012-06-01 02:46 cateatmycode 阅读(364) 评论(0) 推荐(0)
摘要:java中interface的方法默认修饰符是public abstract。修饰符有public、protected、private,当然还有缺省的(default)修饰符,缺省的就是方法名前无任何修饰符。缺省的修饰符的访问权限都不同于public、protected、private所修饰的方法。所以访问权限其实有四种。下面是他们四个访问权限的关系。 以类的方法来举例: 阅读全文
posted @ 2012-05-15 12:57 cateatmycode 阅读(212) 评论(0) 推荐(0)
摘要:1. Java 命名约定除了以下几个特例之外,命名时应始终采用完整的英文描述符。此外,一般应采用小写字母,但类名、接口名以及任何非初始单词的第一个字母要大写。1.1 一般概念n 尽量使用完整的英文描述符n 采用适用于相关领域的术语n 采用大小写混合使名字可读n 尽量少用缩写,但如果用了,要明智地使用,且在整个工程中统一n 避免使用长的名字(小于 15 个字母是个好主意)n 避免使用类似的名字,或者仅仅是大小写不同的名字n 避免使用下划线(除静态常量等)1.2 示范包(Package) 采用完整的英文描述符,应该都是由小写字母组成。对于全局包,将你的 Internet 域名反转并接上 阅读全文
posted @ 2012-05-09 17:57 cateatmycode 阅读(344) 评论(0) 推荐(0)
摘要:注:java中的Map、HashMap类似于C#中的Dictionary如:Javaimport java.util.*;Map map = new HashMap();map.add(o);C#using system;using system.Collections.Generic;IDictionary map = new Dictionary();map.Add(o);-----------------------------------------分割线------------------------------------------------有序否允许元素重复否Collecti 阅读全文
posted @ 2012-05-08 16:29 cateatmycode 阅读(352) 评论(0) 推荐(0)
摘要:下面主要介绍JAVA中的堆、栈和常量池:1.寄存器最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制。2. 栈存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3. 堆存放所有new出来的对象。4. 静态域存放静态成员(static定义的)5. 常量池存放字符串常量和基本类型常量(public static final)。6. 非RAM存储硬盘等永久存储空间这里我们主要关心栈,堆和常量池,对于栈和常量池中的对象可以共享,对于堆中的对象不可以共享。栈中的数据大小和生命周期是可以确定的,当没有引用 阅读全文
posted @ 2012-05-08 14:46 cateatmycode 阅读(226) 评论(0) 推荐(0)
摘要:栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数 阅读全文
posted @ 2012-05-08 11:45 cateatmycode 阅读(850) 评论(3) 推荐(0)
摘要:对List的遍历有三种方式 List<A> list = new ArrayList<A>(); list.add(new A()); list.add(new A()); ... 第一种: for(Iterator<A> it = list.iterator(); it.hasNext(); ) { .... } 这种方式在循环执行过程中会进行数据锁定, 性能稍差 , 只能从头到尾, 同时,如果你想在寻欢过程中去掉某个元素,只能调用it.remove方法, 不能使用list.remove方法, 否则一定出并发访问的错误.但是兼容性最好... 阅读全文
posted @ 2012-04-19 22:11 cateatmycode 阅读(487) 评论(0) 推荐(0)
摘要:int -> Stringint i=12345; String s=""; 第一种方法:s=i+""; 第二种方法:s=String.valueOf(i); 这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?String -> ints="12345"; int i; 第一种方法:i=Integer.parseInt(s); 第二种方法:i=Integer.valueOf(s).intValue(); 这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?以下是答案:第一种方法:s=i 阅读全文
posted @ 2012-04-13 14:52 cateatmycode 阅读(184) 评论(0) 推荐(0)
摘要:一:implements是实现interface(接口),接口里面只给你提供了方法的名称,参数和返回值,你需要在他的实现里面去具体化这些方法,即implements(实现)这个接口的具体功能;二:extends本意是拓展,java中叫做继承,它既可以是class(类)继承class,也可以是interface(接口)继承interface,“继承”顾名思义就是把他的父类(super class)里面的非final修饰的property(属性)、method(方法)的功能原封不动的拿过来用,注意super class也不能是final修饰的; 1,父类和子类如果都是abstract,那么子类无需 阅读全文
posted @ 2012-04-13 00:14 cateatmycode 阅读(662) 评论(0) 推荐(0)
摘要:一、List与ArrayList的区别List->AbstractList->ArrayList(1)List是一个接口,ArrayList是一个实现了List接口的具体类。他们是父子关系,我们常用的是ArrayList,但常用List的引用去操作ArrayList这是一个简单的面向接口编程的一种,如:ListmyList=newArrayList();(2)他们主要是用来保存对象的集合,记得是保存对象的哦,你可别传个int(类)进去(3)要取出它里面保存的对象可以用下标,如:Objectaaa=myList.get(0);这样我们就把保存在myList里的第一个对象取出来给了二、 阅读全文
posted @ 2012-04-12 15:24 cateatmycode 阅读(333) 评论(0) 推荐(0)