- 博客(68)
- 资源 (1)
- 收藏
- 关注
原创 日常总结:构造函数、多态调用和接口的一些特效
构造器子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显式)。如果父类的构造器带有参数,则必须在子类的构造器中显式地通过super关键字调用父类的构造器并配以适当的参数列表。如果父类构造器没有参数,则在子类的构造器中不需要使用super关键字调用父类构造器,系统会自动调用父类的无参构造器。多态多态存在的三个必要条件继承或实现接口 重写 父类引用...
2019-10-28 17:35:12
281
原创 Interger常用API
String toBinaryString(inti) Returns a string representation of the integer argument as an unsigned integer in base2. staticString toHexString(inti) ...
2019-09-28 22:32:40
239
原创 StringBuffer和String常用API(全)
StringBuffer的常用api 1.构造方法 public StringBuffer();无参构造 public StringBuffer(int capacity);指定容量的字符串缓冲区对象 public StringBuffer(String str);指定字符串内容的字符串缓冲区对象 2. 容量和(实际)长度 public int c...
2019-09-28 21:48:40
1025
原创 第一次部署分布式项目遇见的一些问题
1. idea中依赖version报错,可能是下载依赖版本后缀为非.jar(说明下载错误),可以先复制该<dependence></dependence>,然后删除pom文件中的对应的<dependence></dependence>和该依赖对应的文件夹,再把项目maven clean,maven compile,再再pom文件中粘贴回<de...
2019-07-17 15:39:08
308
原创 PS自学之图像/打印大小
图像大小,是指图像在电脑中的大小,通常用像素表达,像素是一种虚拟单位,现实中并不存在。图像/图像大小。数码相机常说的像素,是指图像总的像素数量,一般来说,图像的像素越多,记录的信息也越详细,图像的局部就越细致。打印大小,指实际打印出来的长宽。图像/图像大小。两种不能直接转换,在同一单位的前提下,利用分辨率作为中介进行转换。像素大小/分辨率=打印大小。高度的像素/分辨率=高度的打印大小,宽度...
2019-07-14 22:43:57
455
原创 PS自学教程之色彩三原色RGB
1.首先,要知道屏幕上的颜色本质上都是有红绿蓝三种颜色按照不同的比例混合二成的。屏幕上的任何一个颜色都可以用RGB来表达和记录,就像中国菜里面的糖、盐、味精可以混合成不同调料。类似“糖3克、盐1克”等,来表示调料的多少,在电脑中,RGB的所谓“多少”就是指亮度,并使用整数来表示。2.通常情况下,RGB各有256级亮度0-255,各共256级。按照计算,256级的RGB色彩总共能组合出约...
2019-07-14 21:12:29
2926
转载 递归思想
递归的学习绝对是一个持久战,没有人可以一蹴而就。一年两年的,很寻常。问题的复杂,加上递归本身的细节,我们想要 '学会','学好',再 '用好',是需要一个漫长的过程的。所以还希望读者有足够的耐心。一:什么是递归所谓递归,简单点来说,就是一个函数直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。我们可...
2019-07-06 15:40:45
152
转载 for循环中的i++和++i一
我们应该都知道i++和++i的区别是:++i是先执行 i = i +1 再使用 i 的值,而 i++ 是先使用 i 的值再执行 i = i + 1;for循环的执行顺序如下:for(a;b;c){ d;}进入循环执行a;//只是进入的时候执行执行b; //条件为真才执行d,不然跳出for了执行d;执行c;再回到第2步开始执行来看下面的实例:fo...
2019-07-06 14:11:11
8724
原创 Listener和Filter/Servlet的区别
Listener和Filter/Servlet的区别: Filter和Servlet都是基于用户的url生效的,当用户请求的url与他们配置的url匹配时,对应的ServletFilter生效;; 而Listener不是,监听器是基于具体的事件来生效的,当一个事件发生后,对应的监听器就会生效,之后监听器会将监听到的信息存储到服务器的日志中。或者说因为只要请求服务器资源,就...
2019-04-23 22:14:31
784
原创 文件上传
前台表单 1. 必须具有input type="file" name="f1" 2. 表单提交必须使用POST方法 3. 必须显式声明一个属性 enctype="multipart/form-data"服务器端1. 文件上传表单中,请求实体的内容格式与普通表单不同2. 会导致使用 req.getParameter() 无法获取普通表单项3. 需要开发者对请求实...
2019-04-23 22:11:40
125
转载 foreach遍历集合类型和数组类型底层实现的不同
集合类型的遍历本质是使用迭代器实现的(list,map,set)数组的遍历是通过for循环来实现的(普通数组)扩展:遍历集合的时候移除某个数据:ArrayList<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); list.add(4);...
2019-04-22 16:23:27
443
1
原创 使用Map判断一个字符串中单个字符出现的次数
String str="heqoikjzxdlawskjhelgeq";Map<Charactre,Integer> map=new HashMap();for(int i=0;i<str.length();i++){ char c=str.charAt(i) }if(map.containsKey(c)){ map.put(c,m...
2019-04-22 16:12:54
368
原创 Map中遍历元素的几种方法
Map<String, Integer> map = new HashMap<>(); // 添加元素 map.put("a", 5); map.put("t", 7); map.put("f", 5); map.put("e", 3); map.put("o", 8);...
2019-04-22 16:05:16
1049
转载 fail-fast和fail-safe
fail-fast ( 快速失败 )在使用迭代器遍历一个集合对象时,比如增强for,如果遍历过程中对集合对象的内容进行了修改(增删改),会抛出 ConcurrentModificationException 异常.查看ArrayList源代码,在next方法执行的时候,会执行checkForComodification()方法@SuppressWarnings("unchecked") ...
2019-04-22 16:00:13
177
原创 Java基础之—反射
在运行状态中,对于一个任意类,可以获取类的属性和方法对于任意一个对象,可以调用对象属性和方法。这种动态获取信息及动态调用属性和方法的功能称为反射机制 实际使用时,就是把Java类中各个成分通过Class对象映射成一个个Java对象 Object.getClass(); 对象.class Class.forName(“包名.类名”)...
2019-04-20 11:52:16
123
原创 javaWeb之Response详解
Response 代表了http响应的对象继承结构 (!掌握) ServletResponse -- 通用的响应接口, 定义了响应对象应该具有的功能 | |--HttpServletResponse 在ServletRespo...
2019-04-19 09:15:25
5221
原创 javaWeb之request详解
request 代表http请求的对象,使用HttpServletRequest接口进行。继承结构 HttpServletRequest继承了ServletRequest,这个接口增加了更多和http协议相关的方法。常见的调用的一些方法获取客户端的信息 req.getRequestURL()获取客户端的请求地址 re...
2019-04-19 09:12:29
522
原创 数据库中的三种常见范式
关系数据库中的关系必须满足一定的要求,即满足不同的范式。目前关系数据库有六种范式,下面介绍常见三种:◆ 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。◆ 第二范式(2NF):首先是 1NF,另外包含两部分内容,一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。 成绩表 学号、课...
2019-04-17 17:58:28
323
翻译 volatile关键字
Java的volatile关键字用于把变量标记在主存中(main menory)。准确来说,保证该变量读写都是基于主存操作的,而不是CPU缓存。变量的可见性问题volatile可以保证不同线程之间对于该变量的可见性(让所有线程都看见它的变化)。举个栗子:如果在多线程环境中中操作非volatile变量,那么每个线程会把变量从主存复制到CPU缓存里,再进行变量操...
2019-04-17 17:53:39
186
原创 Java集合之List、set和map的常用方法
ArrayListArrayList 的常用方法 。.add(); .remove(); //可以是index和Object类型。Object移除第一次出现的指定元素。 .indexOf(“ab”); .lastIndexOf(“a”); .size(); .get(index); .set(index,obj); //修改集合的数值 .contains(Object o) ...
2019-04-17 15:22:46
1202
原创 简单:实现一种单例模式
public class Singleton{public static final Singleton single = new Singleton();private Singleton(){}//如果不想在返回过程中添加逻辑可以不写这个方法public Singleton getSingleton(){ return single}}http://www....
2019-04-16 17:48:06
135
原创 Servlet的相关概念和调用过程
在web.xml中注册完整的servlet对外访问路径:<servlet>和<servlet-mapping>标签对<servlet> <servlet-name>FirstServlet</servlet-name> <servlet-class>cn.FirstServlet</serv...
2019-04-16 17:31:25
180
原创 获取一个web资源的方式
在web开发中, 如果要在程序中获取web应用的资源文件, 需要写一个路径时:(1) 如果写一个相对路径 File file = new File("conf.properties"); 这时会到程序启动的目录下去寻找这个资源, 对于web应用来说, web应用是在容器中运行的, 这时候就会到tomcat/bin目录下去找这个文件, 找不到!!(2) 如果写一个绝对路...
2019-04-16 17:24:19
447
原创 Tomcat中ServletConfig和ServletContext的区别和作用
ServletConfig:代表当前Servlet在web.xml中的配置信息,可以通过api获取web.xml中的数据. 在Servlet接口中init方法参数就是ServletConfig,在Servlet创建出来时,init方法立即被容器调用,由容器传入ServletConfig对象.所以可以在web.xml中的<servlet>标签中配置0个或多个<in...
2019-04-16 17:23:26
909
原创 迭代器的作用及Iterator与Enumeration的区别
迭代器将遍历序列的操作和序列底层(存储结构)相分离。可以说:迭代器统一了对容器的访问方式,而不用在乎容器的结果 使用方法iterator()要求容器返回一个Iterator。Iterator将准备好返回序列的第一个元素; 使用next()获取序列中下一个元素; 使用hasNext()检查序列中是否有元素; 使用remove()将迭代器新返回的元素删除。 It...
2019-04-16 17:19:37
407
原创 两个线程交叉打印递增数字,用synchronized和wait实现
开启两个线程,一个线程打印1到100的奇数。如1,3,7…99. 另外一个线程打印1到100的偶数。如2,4,6…100.1到100的数字最终打印出来格式是1,2,3,4,5…100.**static int count = 0; static SingletonDemo1 s = new SingletonDemo1(); pu...
2019-04-16 16:37:45
662
原创 两个线程题
一个线程先打印Thread-1、Thread-2、Thread-3、 Thread-4、Thread-5另一个线程再打印Thread-6、Thread-7、Thread-8、Thread-9、Thread-10static SingletonDemo1 s = new SingletonDemo1(); /*public static SingletonDemo1 in=new Si...
2019-04-16 16:33:40
198
原创 Java中自带的排序算法Arrays.sort()和Collections.sort()
如果我们需要对一个基本类型数组进行排序,我们可以使用Arrays.sort()方法,不过只能升序; 如果我们需要排序一个对象列表List,我们可以使用Collection.sort()方法或者ArrayList自带的sort方法; Arrays.sort()和Collections.sort()都提供自然升序,但是如果想要升序(也可以降序)就需要使用...
2019-04-16 16:29:01
3807
1
原创 简单: 实现一个死锁代码
package cn.tedu.thread;public class DeadLockDemo { static Printer p = new Printer(); static Scaner s = new Scaner(); public static void main(String[] args) { new Thread(new Runnable() { ...
2019-04-16 16:13:09
953
1
原创 浅析线程池
线程池的定义和优点线程池,从字面含义来看,是指管理一组同构工作线程的资源池。线程池是与工作队列密切相关的,其中在工作队列中保存了所有等待执行的任务。工作者线程的任务很简单:从工作队列中获取一个任务,执行任务,然后返回线程池并等待下一个任务。“在线程池中执行任务“”比“为每个线程分配一个任务”优势更多。通过重用现有的线程而不是创建线程,可以在处理多个请求时分摊在线程创建和销毁过程中产生的巨大开销...
2019-04-15 10:40:45
114
原创 线程中sleep()和wait()的区别
sleep()和wait()的区别sleep()sleep()方法是Thread的静态方法,提供了两种sleep的方式可让我们更灵活的控制,目的是为了使线程睡眠一段时间,自然醒后继续执行,不存在继续竞争,因为期间并没有释放同步锁.public static native void sleep(long millis) throws InterruptedException;pub...
2019-04-15 10:00:43
8083
翻译 Hashtable VS SychronizedMap VS ConcurrentHashMap
JAVA Collection 是Java API的核心。所以使用java本身的集合比如HashMap/ArrayList或者LinkedList来访问,存储和处理java应用中的数据是非常找重要的。比如,我们经常使用HashMap来在MVC框架层内传输数据。面试官可能会问你”HashMap是一个线程安全的类吗?”HashMap 线HashMap程并...
2019-04-15 09:58:59
318
原创 Java并发包之ConcurrentMap浅析
ConcurrentMap(并发映射) 1.继承了Map接口ConcurrentHashMap 1.底层基于数组+链表的结构。数组初始容量位16,加载因子为0.75,是一个异步式线程安全的映射。JDK1.5中,采取了分段锁机制,后续引入读写锁优化。对于写锁:只允许一个线程写,写的时候不允许线程读,防止产生脏数据;对于读锁:允许多个线程读,不允许写。读的效率增加,...
2019-04-15 09:54:44
293
翻译 并发模型与分布式系统的相似性
并发模型与分布式系统的相似性 并发系统可以使用不同的并发模型实现。并发模型可以指定任务所需的线程数量。不同的模型有不同切分任务的方法和线程间的通信与交互。 本文中的并发模型与分布式系统中的使用的不同架构相类似。在并发系统中会线程间的交互,而分布式系统中有不同的处理进程交互。线程和进程非常相似,这可能是为什么不同并发模型和不同的分布式架构如此相似的...
2019-04-15 09:52:44
140
原创 乐观锁与悲观锁 及CAS无锁算法
乐观锁与悲观锁独占锁是一种悲观锁,synchronized就是一种独占锁,它假设坏的情况,并且只有在确保其它线程不会造成干扰 的情况下执行,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。而另一个更加有效的锁就 是乐观 锁。 所谓乐观锁就是,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直 到成功为 止。 CAS无锁算法要实现无锁(lock-free)的非阻塞...
2019-04-15 09:45:30
617
原创 数据库中事务的定义及特性
事务定义 事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。 在企业级应用程序开发中,事务管理是必不可少的技术,用来确保数据的完整性和一致性。 事务只和DML有关,或者只有DML语句才有事务 经典的银行转账例子 ...
2019-04-15 09:40:39
684
原创 Java基础之线程浅析
定义线程的三种方法继承Thread;实现Runnable;实现Callable;Runnable和Callable区别 Runnable Callable 返回值 没有返回值 有返回值 启动方式 Thread对象;线程池exec...
2019-04-15 09:29:43
187
原创 MySql数据库引擎对比
常见的是MyISAM和InnoDB的区别主要区别:1).MyISAM是非事务安全型的,而InnoDB是事务安全型的。2).MyISAM锁的粒度是表级,而InnoDB支持行级锁定。3).MyISAM支持全文类型索引,而InnoDB不支持全文索引。4).MyISAM相对简单,所以在效率上要优于InnoDB,小型应用可以考虑使用MyISAM。5).MyISAM表是保存成文件的形式...
2019-04-15 09:21:51
175
原创 Spring中@Autowired和@Resource的区别
@Autowired和@Resource的区别1. @Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。@Autowiredprivate UserDao userDao;//用于字段上@Autowiredpublic void setUserDao(UserDao userDao) {//用于属性的setter方法...
2019-04-13 19:31:34
2840
原创 SpringMVC中@RquestBody和PathVariable的区别
@RquestBody通常用来处理contentType=application/json, 即客户端向服务器发送json字符串格式时,后台方法必须要使用@RequestBody来解析并绑定到方法参数上。@RequestMapping(value = "person/login")@ResponseBodypublic Person login(@RequestBody Pers...
2019-04-13 19:09:39
513
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人