随笔分类 -  java提高篇

上一页 1 2 3 4 5 6 ··· 9 下一页
摘要:1、使用equals( )方法比较两个字符串是否相等。它具有如下的一般形式: boolean equals(Object str) 这里str是一个用来与调用字符串(String)对象做比较的字符串(String)对象。如果两个字符串具有相同的字符和长度,它返回true,否则返回false。这种比较是区分大小写的。 2、为了执行忽略大小写的比较,可以调用equalsIgnoreCase( ... 阅读全文
posted @ 2019-03-04 18:09 brave-sailor 阅读(270) 评论(0) 推荐(0) 编辑
摘要:在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所 阅读全文
posted @ 2019-02-20 15:16 brave-sailor 阅读(202) 评论(0) 推荐(0) 编辑
摘要:一、概述 代理是一种设计模式,其目的是为其他对象提供一个代理以控制对某个对象的访问,代理类负责为委托类预处理消息,过滤消息并转发消息以及进行消息被委托类执行后的后续处理。为了保持行为的一致性,代理类和委托类通常会实现相同的接口。 按照代理的创建时期,代理类可分为两种: 静态代理:由程序员创建代理类或特定工具自动生成源代码再对其编译,也就是说在程序运行前代理类的.class文件就已经... 阅读全文
posted @ 2019-02-20 11:24 brave-sailor 阅读(243) 评论(0) 推荐(0) 编辑
摘要:最近看HashMap源码,遇到了这样一段代码: 于是我整理学习了以下知识:1.十进制转二进制 原理:给定的数循环除以2,直到商为0或者1为止。将每一步除的结果的余数记录下来,然后反过来就得到相应的二进制了。 比如8转二进制,第一次除以2等于4(余数0),第二次除以2等于2(余数0),第三次除以2等于 阅读全文
posted @ 2019-02-18 17:07 brave-sailor 阅读(289) 评论(0) 推荐(0) 编辑
摘要:#配置jdk环境export JAVA_7_HOME=/Library/java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Homeexport JAVA_8_HOME=/Library/java/JavaVirtualMachines/jdk1.8. 阅读全文
posted @ 2019-01-03 15:01 brave-sailor 阅读(323) 评论(0) 推荐(0) 编辑
摘要:如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm,安全散列算法) HMAC(Hash Message Authentication Code,散 阅读全文
posted @ 2018-11-23 14:41 brave-sailor 阅读(10765) 评论(0) 推荐(1) 编辑
摘要:在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务 阅读全文
posted @ 2018-08-08 10:48 brave-sailor 阅读(293) 评论(0) 推荐(0) 编辑
摘要:上一篇Java接口 详解(一)讲到了接口的基本概念、接口的使用和接口的实际应用(标准定义)。我们接着来讲。 一、接口的应用—工厂设计模式(Factory) 我们先看一个范例: package com.wz.factoryDemo; interface Fruit{ public void eat() 阅读全文
posted @ 2018-08-03 10:32 brave-sailor 阅读(329) 评论(0) 推荐(0) 编辑
摘要:一、基本概念 接口(Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合。接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。 如果一个类只由抽象方法和全局常量组成,那么这种情况下不会将其定义为一个抽象类。只会定义为一个接口,所以接口严格的来 阅读全文
posted @ 2018-08-03 10:30 brave-sailor 阅读(639) 评论(0) 推荐(0) 编辑
摘要:位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。 1.与运算符 与运算符用符号“&”表示,其使用规律如下: 两个操作数中位都为 阅读全文
posted @ 2017-07-26 18:15 brave-sailor 阅读(273) 评论(0) 推荐(0) 编辑
摘要:可以使用位运算来判断。 &是位的与运算符,是指二进制数按位“与”的操作, 逻辑与就是两者都为真的时候才为真,其他真假,假真,假假的运算结果都是假。二进制写法如下 1 & 1 = 1 , 1 & 0 = 0 , 0 & 1 = 0, 0 & 0 = 0 如果想判断十进制数 d 的二进制第n位是否是1, 阅读全文
posted @ 2017-07-26 17:51 brave-sailor 阅读(6849) 评论(0) 推荐(1) 编辑
摘要:摘要: HashMap和Hashtable的区别 HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。 HashMap和Hashtable的区别 HashMap和Hashtabl 阅读全文
posted @ 2017-07-10 16:30 brave-sailor 阅读(321) 评论(0) 推荐(0) 编辑
摘要:1、通过一个对象获得完整的包名和类名 Java代码 package Reflect; /** * 通过一个对象获得完整的包名和类名 * */ class Demo{ //other codes... } class hello{ public static void main(String[] ar 阅读全文
posted @ 2017-04-24 13:54 brave-sailor 阅读(401) 评论(0) 推荐(0) 编辑
摘要:Java语言中字符串类型和字节数组类型相互之间的转换经常发生,网上的分析及代码也比较多,本文将分析总结常规的byte[]和String间的转换以及十六进制String和byte[]间相互转换的原理及实现。 1. String转byte[] 首先我们来分析一下常规的String转byte[]的方法,代 阅读全文
posted @ 2017-03-10 13:47 brave-sailor 阅读(101937) 评论(1) 推荐(1) 编辑
摘要:本文转自:http://franksinger.iteye.com/blog/614540 Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把by 阅读全文
posted @ 2017-03-10 11:04 brave-sailor 阅读(22925) 评论(0) 推荐(3) 编辑
摘要:HashMap在我们的工作中应用的非常广泛,在工作面试中也经常会被问到,对于这样一个重要的集合模型我们有必要弄清楚它的使用方法和它底层的实现原理。HashMap是通过key-value键值对的方式来存储数据的,通过put、get方法实现键值对的快速存取,这是HashMap最基本的用法。HashMap 阅读全文
posted @ 2017-02-28 10:16 brave-sailor 阅读(373) 评论(0) 推荐(0) 编辑
摘要:LinkedList底层是通过双向循环链表来实现的,其结构如下图所示: 链表的组成元素我们称之为节点,节点由三部分组成:前一个节点的引用地址、数据、后一个节点的引用地址。LinkedList的Head节点不包含数据,每一个节点对应一个Entry对象。下面我们通过源码来分析LinkedList的实现原 阅读全文
posted @ 2017-02-28 10:10 brave-sailor 阅读(302) 评论(0) 推荐(0) 编辑
摘要:ArrayList底层维护的是一个动态数组,每个ArrayList实例都有一个容量。该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向 ArrayList 中不断添加元素,其容量也自动增长。 ArrayList不是同步的(也就是说不是线程安全的),如果多个线程同时访问一个Arr 阅读全文
posted @ 2017-02-28 10:09 brave-sailor 阅读(253) 评论(0) 推荐(0) 编辑
摘要:众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力。因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段。 大 家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通 阅读全文
posted @ 2017-01-05 09:51 brave-sailor 阅读(186) 评论(0) 推荐(0) 编辑
摘要:悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样对数据库性能开销影响也很大,特别是对长事务而言,这样的开销往往无法承受。所以与悲观锁相对的,我们有 阅读全文
posted @ 2016-12-29 10:07 brave-sailor 阅读(393) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 9 下一页
点击右上角即可分享
微信分享提示