![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
雨降
这个作者很懒,什么都没留下…
展开
-
进一步理解Java中的基本数据类型以及对应的包装类
Java中的基本数据类型和包装类可以说是相当基础的一部分了,在日常开发中经常用到,但我们平时却不会过于深究。第一部分,重新回顾一遍基本数据类型相关的内容,对与比较模糊的地方着重的总结了一下。第二部分,通过JDK文档,结合源码,深入了解各个包装类。原创 2018-04-29 22:44:35 · 275 阅读 · 0 评论 -
抽象类的4个特点
Java编程思想P171抽象类只能被继承抽象方法必须是public或protected抽象类不能用于创建对象子类必须实现父类的抽象方法,如果没实现,子类也是抽象类其他与普通类相同(可以由构造方法,但只能在子类中通过super()调用。)...原创 2019-03-31 13:01:34 · 242 阅读 · 0 评论 -
Java里只有值传递,传对象也只是传递对象的地址(也是值传递)
如题原创 2019-03-31 13:02:44 · 370 阅读 · 0 评论 -
finally中返回值return的问题
try或catch中的return语句的返回值放入线程栈顶部;如果返回值是基本类型,则顶部存放的就是值,如果返回值是引用类型,则顶部存放的是该对象的地址finally中的语句可以修改引用类型的对象,但不能修改基本类型的值不管是基本类型还是引用类型,都可以被finally中返回的“具体值”覆盖return时复制了一个变量,然后返回该变量。所以之后如果在finally中操作的变量是基本类型,不...原创 2019-03-31 13:10:47 · 1683 阅读 · 0 评论 -
hashCode()与equals()的作用
equals()用于比较对象内容是否相等(重写后)hashCode()只在集合中用到将元素放入集合的流程图Created with Raphaël 2.2.0要放入集合中的对象遍历集合中的所有对象hashCode()是否相等equals()是否相等舍弃将对象插入集合yesnoyesnoJava编程思想 第四版 P496...原创 2019-03-31 17:50:56 · 169 阅读 · 0 评论 -
Socket通信流程简单描述
客户端:用服务器的IP地址和端口实例化Socket对象调用connect()方法连接到服务器利用Socket提供的getInputStream()和getOutputStream(),通过I/O流对象收发数据,与服务器进行通信通讯结束后,关闭I/O对象和Socket服务器:利用端口实例化一个ServerSocket对象调用accept()方法,使ServerSocket开始监听...原创 2019-04-01 10:59:31 · 2151 阅读 · 0 评论 -
异常的结构
原创 2019-04-01 14:59:39 · 545 阅读 · 0 评论 -
Java中的“/”与“\”
斜杠/:在Java中表示地址路径的下一级目录反斜杠\:在Java中表示转义字符,如\t、\n等,如果要输出\,则需要printf("\\")ps.在windows中目录路径用反斜杠在Java中表示路径有2中方法:D:/fileFolder或D:\\fileFolder...原创 2019-04-01 15:07:50 · 1204 阅读 · 0 评论 -
Java中的通配符?与泛型变量T
泛型变量 T只能在类、接口、方法中声明后才能使用,例如:public class Box<T>{ public T get(){...}}无界通配符 ?只能用于填充泛型变量T,表示通配任何类型。注意,是用来填充泛型变量T的,属于填充方式的一种。例如:Box<?> box;box = new Box<String>();------------...原创 2019-04-01 15:38:00 · 2132 阅读 · 0 评论 -
Java中防止double出现精度失控
在Java中,double类型可能会出现精度上的变化,如0.08可能会打印出0.0799999998。可用以下方法解决BigDecimal bigDecimal = new BigDecimal(0.079999998);bigDecimal.setScale(2,BigDecimal.ROUNG_HALF_UP).doubleValue();...原创 2019-04-02 14:05:24 · 610 阅读 · 0 评论 -
Java8新特性概览——Stream特性,Lambda表达式,函数式接口Function、Predicate、Consumer,方法引用等概述
概述:Java 8 新特性概述:https://www.ibm.com/developerworks/cn/java/j-lo-jdk8newfeature/index.htmlJAVA8 十大新特性详解:https://www.cnblogs.com/xingzc/p/6002873.html关于lambda表达式:State of the Lambda:http://cr.openjd...转载 2019-04-08 16:58:12 · 1756 阅读 · 0 评论 -
关于URI、URL、URN
URI: Uniform Resource Identifier,统一资源标识符URL:Uniform Resource Locator,统一资源定位器URN: Uniform Resource Name,统一资源命名URI是一种抽象的、高层次的概念,定义统一资源标识,而URL和URN是具体的资源标识方式,URL和URN都属于URI的一种。URI可以是相对的,也可以是绝对的;URL只能是...原创 2019-03-31 12:48:26 · 634 阅读 · 0 评论 -
instanceof关键字、isInstance()方法、isAssignableFrom()方法
左类是右类或者右类的派生类引用变量 instanceof 类型左类是右类或右类的超类Class类.isInstance(引用变量)Class类.isAssignableFrom(Class类)原创 2019-03-31 12:31:50 · 125 阅读 · 0 评论 -
Java9 module特性 初识
参考网站:The State of the Module System,Java9模块系统的说明(翻译),Java9 中的 Module, ModulePath 和 ClassPath每个java project中的根目录下都有一个module-info.javamodule [module name] { requires [module]; requires public [modul...原创 2019-03-21 17:51:31 · 2571 阅读 · 1 评论 -
类的加载和初始化顺序
静态变量->静态块->非静态变量->非静态块->构造器对于继承关系中的类的初始化:父类静态变量->父类静态块->子类静态变量->子类静态块->父类非静态变量->父类非静态块->父类构造器->子类非静态变量->子类非静态块->子类构造器如果在静态块中调用静态方法,在加载时会先运行静态方法,再继续加载。所有...原创 2019-03-22 16:31:43 · 143 阅读 · 0 评论 -
Java的四大特性:封装、抽象、继承、多态
封装、抽象、继承、多态封装:封装体现在类上抽象:抽线体现在抽象类上,即将事物共同的行为和属性抽象在一起,封装在一个类中。继承:子类可以继承父类的一些行为和属性。多态:体现在父类可以引用不同的子类对象,从而表现出不同的行为多态还表现为重写、重载和泛型重写是运行时多态,属于引用类型的多态。重载是编译时多态,属于方法的多态。重写需要保持方法名、参数列表和返回类型(协变)一致。重载需要保...原创 2019-03-22 18:54:14 · 1157 阅读 · 0 评论 -
关于.replaceAll(regex.relacement)中“\”的问题
要把str="D:\test\test2\test3"中的\换成\\,str.replaceAll("\\\\","\\\\\\\\")。原因:\在java中式转义符,在正则表达式中也是转义符。该方法实际用的是正则表达式的规则进行匹配。先在java中将\\\\解释为\\,然后在正则表达式中将\\解释为\PS:使用str.replace("\\","\\\\")效果相同,因为repla...原创 2019-03-30 16:56:28 · 240 阅读 · 0 评论 -
关于方法参数中的“可变长度参数列(Object...obj)”表与“数组(Obejct[] obj)”的区别
方法test(String...str),可以直接通过.test()调用,也可以通过.test("xxx")调用,或.test(new String[]{"a","b"})调用。test(String...str)可以与test()方法重载,当使用.test()调用时,优先调用后者。test(String...str)不能与test(String[] array)重载,会报错:出现重复方法。...原创 2019-03-30 17:06:05 · 527 阅读 · 0 评论 -
关于多态、绑定、反射、RTTI、反射
多态:消除类型之间的耦合关系(向上转型)重写:运行时多态、引用类型的多态。重载:编译时多态,方法的多态。泛型多态:绑定:将一个方法调用与一个方法主体关联起来前期绑定后期绑定(运行时绑定):Java中所有方法都是通过后期绑定实现多态。RTTI(运行时类型识别,Run Time Type Identification):传统的RTTI通过继承和多态实现,在运行时通过调用超类方法来...原创 2019-03-30 17:23:30 · 242 阅读 · 0 评论 -
关于内部类获得外部类对象的引用
内部类调用外部类的非静态方法时,需要通过外部类对象的引用来调用:OuterClass.this.method()以上适用于内部类与外部类方法重名时使用。情况:内部类与外部类的方法重名(参数相同)时,直接调用外部类方法,运行时会出错(溢栈)内部类与外部类的方法重名(参数不同),直接使用方法名调用外部类,编译时会报错。内部类与外部类方法名不同时,内部类可直接调用外部类方法...原创 2019-03-30 17:32:03 · 1625 阅读 · 0 评论 -
数组有内建的协变类型,而泛型没有
List<Number> list = new List<Integer>是编译错误的;但Number[] array = {new Integer, new Double, new Float}是正确的。解释:两个泛型之间是没有关系的(所以自然没有继承关系)List<Integer>在类型上不等价于List<Number>真正的问题在于...原创 2019-03-30 17:37:55 · 176 阅读 · 0 评论 -
关于引用和对象
对象:每个对象都是某个类(Class)的一个实例(instance)。引用:是用来操纵对象的标识符(标识符实际上是指向了一个对象的引用)Person person声明了一个Person类的引用。person = new Person("张三")使一个引用指向了一个“张三”对象(Person的一个实例)ps. 引用操纵的是对象,而不是直接操纵类,所以必须要让引用指向一个对象(运行时)...原创 2019-03-30 17:45:10 · 180 阅读 · 0 评论 -
关于=和.equals()
关于“=”:对于基本类型而言,“=”比较的是基本类型的值(内容)。对于对象而言,“=”比较的是对象本身(引用地址)。关于.equals().equals()不能直接用于基本类型的比较。对于包装类型,它们的.equals()方法已经被重写,比较的是对象的内容。对于普通类型,.equals()继承自Object类,未被重写时,默认比较对象的引用。以下来自 http://www....原创 2019-03-30 17:55:31 · 354 阅读 · 0 评论 -
Java中没有无符号类型
(Byte) 127 +1 == (Byte) -128; //true原创 2019-03-31 12:22:08 · 2142 阅读 · 0 评论 -
Stream流的使用详解(以及Optional类型,Supplier,Stream.generate(),Collectors.groupingBy(),通用函数接口)
内容转自:https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/流的使用详解简单说,对 Stream 的使用就是实现一个 filter-map-reduce 过程,产生一个最终结果,或者导致一个副作用(side effect)。流的构造与转换构造流的几种常见方法:// 1. Individual valuesStr...转载 2019-04-08 21:15:54 · 8248 阅读 · 0 评论