![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java学习笔记
回首往昔少年
这个作者很懒,什么都没留下…
展开
-
为什么float比long大
基本类型 数据类型字节long8float4 为什么8位字节long的数据范围会比4位字节float的数据范围小呢? 下面举一个例子来进行比较: long:2^63-1; float : 3.4x10^38 > 2x10^38 > 2x8^38 可得:2x8^38 = 2x2338 = 2x2^114 因为:2x2^114 > 2^63-1 所以:float的数据范围大于long的数据范围 附:float在内存中是如何存储的: float类型数字在计算机中用4个字节存储。遵转载 2020-10-08 14:14:31 · 1135 阅读 · 0 评论 -
@Data注解与lombok
引入lombok@Data 注解的主要作用是提高代码的简洁,使用这个注解可以省去代码中大量的get()、 set()、 toString()等方法;要使用 @Data 注解要先引入lombok,lombok 是什么,它是一个工具类库,可以用简单的注解形式来简化代码,提高开发效率。在maven中添加依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombo转载 2020-09-29 14:39:09 · 259 阅读 · 0 评论 -
commons-logging和log4j
拽根胡来 2019年11月10日 阅读 159 关注 Java中各种Log的使用 在看Spring源码的时候发现Spring中使用的Log是commons.logging中的Log,而不是我们常用的log4j。实际上commons.logging中的Log只提供一个调用Log的接口,并没有任何具体的实现,当我们调用commons.logging.LogFactory#getLog...转载 2020-09-23 20:48:35 · 1903 阅读 · 0 评论 -
各种快捷键
提示方法参数类型:Ctrl + P代码提示:Alt + /代码自动补全:Ctrl + Alt + V原创 2020-08-27 17:29:36 · 129 阅读 · 0 评论 -
IO流普通操作示意图
IO流普通操作示意图原创 2020-04-30 09:49:32 · 386 阅读 · 0 评论 -
一起来看看正则表达式
如果想匹配非ASCII字符,例如中文,那就用\u####的十六进制表示,例如:a\u548cc匹配字符串"a和c",中文字符和的Unicode编码是548c匹配任意字符精确匹配实际上用处不大,因为我们直接用String.equals()就可以做到。大多数情况下,我们想要的匹配规则更多的是模糊匹配。我们可以用.匹配一个任意字符。例如,正则表达式a.c中间的.可以匹配一个任意字符,例如,下面的字...原创 2020-02-21 20:32:53 · 2685 阅读 · 0 评论 -
Java IO整理
主要内容:(1) 按操作方式分类结构图:(2)按操作对象分类结构图转载 2019-12-04 09:17:26 · 79 阅读 · 0 评论 -
Java核心技术卷I——并发
Java Volatile关键字转载 2019-12-02 22:24:24 · 186 阅读 · 0 评论 -
抽象类与接口
在使用抽象类时需要注意几点:1、抽象类不能被实例化,实例化的工作应该交由它的子类来完成,它只需要有一个引用即可。2、抽象方法必须由子类来进行重写。3、只要包含一个抽象方法的抽象类,该方法必须要定义成抽象类,不管是否还包含有其他方法。4、抽象类中可以包含具体的方法,当然也可以不包含抽象方法。5、子类中的抽象方法不能与父类的抽象方法同名。6、abstract不能与final并列修饰同一个...原创 2019-11-28 09:30:32 · 68 阅读 · 0 评论 -
JAVA类型强制转换
Java类型强制转换 ...转载 2019-11-24 09:43:02 · 9955 阅读 · 0 评论 -
搞懂泛型
文章目录静态泛型方法擦拭法不恰当的覆写方法泛型继承extends通配符extends通配符的作用super通配符对比extends和super通配符PECS原则无限定通配符泛型和反射总结静态泛型方法在 static 后加一个 <K>public static <K> Pair<K> create(K first,K last){ retur...转载 2019-11-23 21:09:27 · 214 阅读 · 0 评论 -
对象克隆
一个包含对象引用的变量建立副本时会发生什么?原变量和副本都是同一个对象的引用。这说明,任何一个变量改变都会影响另一个变量。浅拷贝Employee original = new Employee("WebbQin",50000);Employee copy = original;copy.raiseSalary(10);//original同样改变深拷贝Employee copy ...原创 2019-11-22 10:35:16 · 79 阅读 · 0 评论 -
java核心技术卷(一)-------继承
一个对象变量可以指示多种实际类型的现象被称为多态在运行时能够自动地选择调用哪个方法的现象称为动态绑定如果是private方法、static方法、final方法或者构造器,那么编译器就可以准确地知道应该调用哪个方法,我们将这种调用方法称为静态绑定理解方法调用父类Employee e;getSalary()子类Manager覆盖getSalary()在运行时,调用 e.ge...原创 2019-11-21 14:51:53 · 112 阅读 · 0 评论 -
网络编程
网络编程一、网络编程基础概念首先理清一个概念:网络编程不等于网站编程,网络编程即使用套接字来达到进程间通信,现在一般称为TCP/IP编程。计算机网络:把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大,功能强的网络系统,从而使众多的计算机可以方便的互相传递信息,共享硬件,软件,数据信息等资源。计算机网络的主要功能:资源共享信息传输与集中处理均衡负荷与分布处理...转载 2019-10-30 21:09:40 · 229 阅读 · 0 评论 -
深入了解 String,没你想那么简单
更多详细内容请看深入了解字符串常量池我终于搞懂了和String有关的那些事儿Java == 和 equals()的区别我们先来看一个例子String s1 = "aaa";String s2 = new String("aaa");System.out.println(s1 == s2); //falseSystem.out.println(s1.equals(s2));//tru...原创 2019-10-19 22:09:00 · 117 阅读 · 0 评论 -
最近学到的lamda表达式和方法引用
import java.util.*;public class Test { public static void main(String[] args) { List<String> cities = Arrays.asList("Atlanda", "Savannah", "New York", "Indiana"); //写法一:lam...原创 2019-10-17 17:05:27 · 167 阅读 · 0 评论 -
Java容器一览
文章目录集合1.List2.Map2.1 HashMap2.2 TreeMap3. SetJava集合框架支持以下两种类型的容器:一种是为了存储一个元素集合,称为集合(collection)另一种是为了存储键 / 值对,称为映射(map)集合Set用于存储一组不重复的元素List用于存储一个有序元素的集合Stack用于存储采用后进先出方式处理的对象Queue用于存储采用先进先...原创 2019-10-17 14:21:36 · 220 阅读 · 0 评论 -
自定义实现LinkedList
LinkedList:基于双向链表实现,只能顺序访问,但是可以快速地在链表中间插入和删除元素。不仅如此,LinkedList 还可以用作栈、队列和双向队列。每个链表存储了 first 和 last 指针:transient Node<E> first;transient Node<E> last;接下来是简单实现package TestList.TestLin...原创 2019-10-16 17:49:41 · 97 阅读 · 0 评论 -
遍历集合的方法总结及迭代器
遍历List方法一:普通for循环for(int i = 0;i < list.size();i++){//list为集合的对象名 String temp = (String)list.get(i); System.out.println(temp);}遍历List方法二:增强for循环(使用泛型!)for (String temp : list) { S...原创 2019-10-14 20:24:02 · 343 阅读 · 0 评论 -
自定义简单实现hashmap
首先定义一个节点package TestList.TestMap;public class Node2<K,V> { int hash; K key; V value; Node2 next;}接着就是具体实现package TestList.TestMap;/** * 自定义Hashmap * 采用数组+链表形式存储元素 * h...原创 2019-10-14 10:08:55 · 906 阅读 · 0 评论 -
java--成员的访问控制符
java中有四种不同权限的访问控制符(算上默认这一种),从下面的表格中能更清晰地看出四种访问控制符的权限范围 同一个类中 同一个包中 不同包中的子类 不同包中的非子类 private yes 默认 yes yes protected yes yes yes ...原创 2019-04-20 21:28:15 · 1405 阅读 · 0 评论 -
内部类继承
本文主要以成员内部类 为讲解对象本文要点如下:成员内部类的子类可以是内部类,也可以不是内部类;当成员内部类的子类不是内部类或子类虽是内部类但与其父类不在同一个外部类时,子类的构造方法第一句要显式添加如下的语句:外部类对象引用.super(参数);这里的外部类指父类所在的外部类编译器默认给成员内部类的构造方法传入一个参数,该参数是内部类所依附的外部类对象的引用;注:本文涉及到的类都...原创 2019-09-17 12:39:32 · 768 阅读 · 0 评论 -
内部类
一.内部类基础在 Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部类的用法。1.成员内部类成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形如下面的形式:class Circle { double radius = 0; ...转载 2019-09-16 19:21:26 · 199 阅读 · 0 评论 -
java接口
Java 接口接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。接口无法被实例化,...转载 2019-09-15 15:39:15 · 164 阅读 · 0 评论 -
构造函数调用相关
子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显式)。如果父类的构造器带有参数,则必须在子类的构造器中显式地通过 super 关键字调用父类的构造器并配以适当的参数列表。如果父类构造器没有参数,则在子类的构造器中不需要使用 super 关键字调用父类构造器,系统会自动调用父类的无参构造器 。示例class SuperClass { private ...原创 2019-09-13 22:26:13 · 141 阅读 · 0 评论 -
TCP/IP三次握手、四次挥手详解
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...转载 2019-09-11 23:22:59 · 119 阅读 · 0 评论 -
静态方法注意点
1.静态方法中不能直接调用非静态变量,要通过对象实现调用,就像高富帅只挑白富美,看不上灰姑娘,看上了也只是玩玩儿。静态成员在对象创建之前就要写入内存,所以它在内存中是实实在在的存在的,而非静态还不存在内存中,所以不能调用,也就是静态方法使用的东西比较受限制。那么怎么样才可以调用非静态成员呢?很简单,只需要把非静态成员写进内存就可以了(变成白富美),那就通过创建该类的对象来访问,如图22、 ...转载 2019-09-06 20:02:51 · 362 阅读 · 0 评论 -
隐藏和覆盖的区别
隐藏和覆盖覆盖:子类重写父类的方法,要求方法名和参数类型完全一样(参数不能是子类),返回值和异常比父类小或者相同(即为父类的子类),访问修饰符比父类大或者相同。覆盖是对于实例方法而言的方法不能交叉覆盖:子类实例方法不能覆盖父类的静态方法; 子类的静态方法也不能覆盖父类的实例方法(编译时报错)隐藏:父类和子类拥有相同名字的属性或者方法( 方法隐藏只有一种形式...转载 2019-09-06 11:40:01 · 4025 阅读 · 0 评论 -
java中重载与重写的区别
重载方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。重载的时候,方法名要一样,但是参数类型和个数...原创 2019-09-05 20:14:54 · 1213 阅读 · 0 评论 -
java笔记——Scanner
今天碰到一件十分有意思的事情,直接上代码import java.util.Scanner;public class newLine { public static void main(String[] args) { Scanner s = new Scanner(System.in); int a = s.nextInt(); S...原创 2019-04-25 10:49:05 · 109 阅读 · 0 评论 -
java中this的使用
在方法中,可以使用一个关键词this来表示这个对象本身。在普通方法中,this表示调用这个方法的对象;在构造方法中,this表示新创建的对象。1.使用this来访问字段及方法在方法及构造方法中,可以使用this来访问对象的字段和方法例如,方法sayHello中使用name和使用this.name是相同的。即: void sayHello(){ System.out.prin...原创 2019-04-20 11:53:45 · 514 阅读 · 0 评论 -
java------Constructor
转 java中构造器(Constructor) 2012年03月27日 16:57:02 00M 阅读数:51676 ...转载 2019-05-02 11:09:07 · 64 阅读 · 0 评论 -
java中“System.in.skip(2)”语句的作用
今天写了一段代码,实现功能为:多次输入字符,显示其ASCII码,直到按‘#’结束废话不多说,直接上代码`public class ASCII { public static void main(String[] args) { try{ char c; do{ System.out.prin...原创 2019-04-18 11:31:40 · 1717 阅读 · 1 评论 -
装饰模式
** * 抽象组件:需要装饰的抽象对象(接口或抽象对象) * 具体组件:需要装饰的对象 * 抽象装饰者:包含了对抽象组件的引用以及装饰着共有的方法 * 具体装饰类:被装饰的对象 * FileInputStream fileInputStream = new FileInputStream(filePath); * BufferedInputStream bufferedInputStr...原创 2019-10-05 09:07:57 · 142 阅读 · 0 评论 -
模拟实现简化版ArrayList,重写toString方法引发的思考
今天手动模拟实现了一个ArrayList的简化版本package TestList;public class TestList02 { private Object[] elementData; private int size; private static final int DEFAULT_CAPACITY = 10; public TestList...原创 2019-10-07 21:51:52 · 584 阅读 · 0 评论 -
JAVA ZIP输入输出流
ZIP是一种较为常见的压缩形式,在Java中要想实现ZIP的压缩需要导入java.util.zip包,可以使用此包中的ZipFile、ZipOutputStream、ZipInputStream、ZipEntry几个类完成。ZipOutputStream类的常用方法ZipInputStream类的常用方法在JAVA IO中,不仅可以实现ZIP压缩格式的输入、输出,也可以实现JAR及GZI...转载 2019-10-07 09:53:42 · 497 阅读 · 0 评论 -
transient关键字
1. transient的作用及使用方法我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,打个比方,...转载 2019-10-07 22:18:00 · 76 阅读 · 0 评论