Java源码
文章平均质量分 96
wespten
悦分享
网上搜索资料的朋友,一定都会有这样一个感受,那就是知识点有时太过零散,有时又存在误区,有时又太过简短,而有时又缺乏深度,一个系统又详细的分享小天地,为真正想去学习或了解某些事情的朋友,持续提供有价值且有深度的内容。
展开
-
Groovy语言详解
Groovy是一种基于Java平台的面向对象语言。 Groovy 1.0于2007年1月2日发布,其中Groovy 2.4是当前的主要版本。 Groovy通过Apache License v 2.0发布。Groovy中有以下特点:Groovy的官方网站是The Apache Groovy programming language有多种方式来获得的Groovy环境设置。下载和安装: -进入该链接www.groovy-lang.org/download.html获得Windows安装程序部分。启动Groovy安原创 2022-10-29 11:38:04 · 6408 阅读 · 2 评论 -
Java Socket 网络编程
一、网络编程简介网络编程:指在网络通信协议下,不同计算机上运行的程序,可以进行数据传输。网络编程三要素:InetAddress 类表示 Internet协议(IP)地址。相关方法:代码示例:三、UDP 编程1. 发送端构造方法:相关方法:发送数据的步骤:代码示例:2. 接收端构造方法:相关方法:接收数据的步骤:代码示例:四、TCP 编程1. 客户端Java 为客户端提供了 Socket 类,为服务器端提供了 ServerSocket 类。构造方法:相关方法:示例代码:2. 服原创 2022-10-26 23:13:35 · 2468 阅读 · 1 评论 -
Java 多线程编程
多线程是指一个进程中包含的多个执行流(可执行的计算单元),即在一个进程中可以同时运行多个不同的线程,来执行不同的任务。注意,一个 CPU 同一时间只能执行一个线程。使用多线程的好处是可以提高 CPU 的利用率。在多线程程序中,当其中一个线程必须等待的时候,CPU 可以运行其它的线程而不是等待,这样就大大提高了程序的效率。也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。线程也是程序,所以线程需要占用内存。线程越多,占用内存也越多;多线程需要协调和管理,所以需要 CPU 时间跟踪线程;原创 2022-10-26 17:39:34 · 444 阅读 · 0 评论 -
Java语言详解
1. 机器数一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机中用一个数的最高位存放符号,正数为 0、负数为 1。比如,十进制中的数 +3 ,若计算机字长为 8 位,则转换成二进制就是 00000011。如果是 -3 ,就是 10000011 。那么,这里的 00000011 和 10000011 就是机器数。2. 真值因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数 10000011,其最高位 1 代表负,其真正数值是 -3 而不是形式值 131(原创 2022-10-26 17:27:52 · 694 阅读 · 0 评论 -
Java 序列化详解
Java核心技术原创 2022-10-26 17:41:08 · 1193 阅读 · 0 评论 -
Java异常处理代码编写
Java异常处理代码编写java中的异常在计算机程序运行的过程中,总是会出现各种各样的错误。有一些错误是用户造成的,比如,希望用户输入一个int类型的年龄,但是用户的输入是abc:// 假设用户输入了abc:String s = "abc";int n = Integer.parseInt(s); // NumberFormatException!程序想要读写某个文件的...原创 2019-08-19 10:12:38 · 3964 阅读 · 0 评论 -
使用java关键字编写代码
使用java关键字编写代码java的关键字java的基本数据类型Java是一种强类型语言,必须为每一个变量声明一种类型。Java共包含8中基本类型,其中4种整型、2种浮点型、1种用于表示Unicode编码的字符单元的字符类型char和1种用于表示真值的boolean类型。Java包含4种整型:int:4字节 short:2字节 long:8字节 byte:1字节长整...原创 2019-08-04 22:13:13 · 951 阅读 · 0 评论 -
Java反射代码编写
Java反射代码编写Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。而这也是Java被视为动态(或准动态,为啥要说是准动态,因为一般而言的动态语言定义是程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不...原创 2019-08-19 10:58:04 · 1069 阅读 · 0 评论 -
Java多线程代码编写
Java多线程代码编写什么是多线程并发和并行 并行:指两个或多个时间在同一时刻发生(同时发生); 并发:指两个或多个事件在一个时间段内发生。在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每一时刻只能有一道程序执行,即微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行,那是因为分时交替运行的时间是非常短的。...原创 2019-08-19 14:27:58 · 3554 阅读 · 0 评论 -
java的IO流代码编写
java的IO流代码编写File 类文件和目录路径名的抽象表示。注意:File 类只能操作文件的属性,文件的内容是不能操作的。1、File 类的字段 我们知道,各个平台之间的路径分隔符是不一样的。 ①、对于UNIX平台,绝对路径名的前缀始终为"/"。 相对路径名没有前缀。 表示根目录的抽象路径名具有前缀"/"和空名称序列。 ②、对于Microsoft Win...原创 2019-08-19 13:44:58 · 682 阅读 · 0 评论 -
Java动态代理代码编写
Java动态代理代码编写代理的概念 动态代理技术是整个java技术中最重要的一个技术,它是学习java框架的基础,不会动态代理技术,那么在学习Spring这些框架时是学不明白的。 动态代理技术就是用来产生一个对象的代理对象的。在开发中为什么需要为一个对象产生代理对象呢? 举一个现实生活中的例子:歌星或者明星都有一个自己的经纪人,这个经纪人就是他们的代理人,当我们需要找明星表演时...原创 2019-08-26 00:04:38 · 739 阅读 · 0 评论 -
Java面向对象与代码编写
Java面向对象与代码编写面向过程的思想和面向对象的思想面向对象和面向过程的思想有着本质上的区别,作为面向对象的思维来说,当你拿到一个问题时,你分析这个问题不再是第一步先做什么,第二步再做什么,这是面向过程的思维,你应该分析这个问题里面有哪些类和对象,这是第一点,然后再分析这些类和对象应该具有哪些属性和方法。这是第二点。最后分析类和类之间具体有什么关系,这是第三点。...原创 2019-08-25 08:41:52 · 3451 阅读 · 0 评论 -
java泛型代码编写
java泛型代码编写泛型的由来我们先看下面这段代码:List list = new ArrayList();list.add(24); //向集合中添加一个 Integer 类型的数据list.add("Tom"); //向集合中添加一个 String 类型的数据 for(int i = 0 ; i < list.size() ; i++){ Objec...原创 2019-08-19 11:27:22 · 1072 阅读 · 0 评论 -
深入学习java源码之判断是否为空工具类
深入学习java源码之判断是否为空工具类 StringUtil的定义字符串工具类,判断是否为空字符串(判断数据库有无数据null与“”)public class StringUtil { public static boolean isEmpty(String str) { if (str == null || str.length() == 0) {...原创 2018-12-26 15:07:43 · 927 阅读 · 0 评论 -
深入学习java源码之ArrayList.spliterator()与ArrayList.subList()
深入学习java源码之ArrayList.spliterator()与ArrayList.subList()抽象类面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。抽象类就是为了继承而存在的,如果你定义了一个抽象类,却不去继承它...原创 2019-01-04 06:02:46 · 750 阅读 · 0 评论 -
深入学习java源码之基本类型与引用类型
深入学习java源码之基本类型与引用类型Java中的变量分为基本类型和引用类型两种。基本类型的变量保存数值本身,而引用类型的变量保存的是引用值,即指向内存空间的地址。基本类型包括:byte,char,int short,long,float,double,boolean;引用类型包括:类类型,接口类型和数组。基本类型在声明其变量时就为它分配了空间: int value; v...原创 2019-01-04 06:20:41 · 336 阅读 · 0 评论 -
深入学习java源码之ArrayList.addAll()与ArrayList.retainAll()
深入学习java源码之ArrayList.addAll()与ArrayList.retainAll()引入多态List是接口,所以实现类要把接口中的抽象方法全部重写。在重写的时候父类中的方法的时候,操作的数据类型也是要与父类保持一致的。所以父类和子类操作的都是泛型E(此时还不确定具体操作的是什么数据类型,有使用者确定)public class ArrayList<E> ...原创 2019-01-04 06:19:32 · 2802 阅读 · 0 评论 -
深入学习java源码之Math.sin()与 Math.sqrt()
深入学习java源码之Math.sin()与 Math.sqrt()native关键字凡是一种语言,都希望是纯。比如解决某一个方案都喜欢就单单这个语言来写即可。Java平台有个用户和本地C代码进行互操作的API,称为JNInative关键字告诉编译器(其实是JVM)调用的是该方法在外部定义,这里指的是C。Modifier and Type Method and Des...原创 2019-01-05 06:28:04 · 2267 阅读 · 0 评论 -
深入学习java源码之Math.toRadians()与 Math.toDegrees()
深入学习java源码之Math.toRadians()与 Math.toDegrees()strictfp关键字, 即 strict float point (精确浮点)。strictfp 的意思是FP-strict,也就是说精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运 行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来...原创 2019-01-05 06:10:18 · 8103 阅读 · 0 评论 -
深入学习java源码之Math.floor()与 Math.rint()
深入学习java源码之Math.floor()与 Math.rint()java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2>> : 右移运算符,num >> 1,相当于num除以2>>> : 无符号右移,忽略符号位,空位都以...原创 2019-01-05 06:41:00 · 627 阅读 · 0 评论 -
深入学习java源码之StringBuilder.append()与StringBuilder.appendCodePoint()
深入学习java源码之StringBuilder.append()与StringBuilder.appendCodePoint()CharSequence接口charSequence是一个接口,表示char值的一个可读序列。此接口对许多不同种类的char序列提供统一的自读访问。此接口不修改该equals和hashCode方法的常规协定,因此,通常未定义比较实现 CharSequence 的...原创 2018-12-31 05:31:49 · 8655 阅读 · 2 评论 -
深入学习java源码之Boolean.hashCode()()与Boolean.compare()
深入学习java源码之Boolean.parseBoolean()与Boolean.getBoolean()java的Comparable接口Comparable接口是一个泛型接口。Java类库中:Byte,Short,Integer,Long,Float,Double,Character,BigTnteger,BigDecimal,Calendar,String及Data类都实现了Com...原创 2018-12-31 09:02:40 · 576 阅读 · 0 评论 -
深入学习java源码之Math.addExact()与 Math.multiplyExact()
深入学习java源码之Math.addExact()与 Math.multiplyExact()^运算符或的运算符,其运算规则是:两个操作数的位中,相同则结果为0,不同则结果为1。int i = 15, j = 2运行结果是:i ^ j = 13.分析上面程序,i=15转成二进制是1111,j=2转成二进制是0010,根据异或的运算规则得到的是1101,转成十进制就是13....原创 2019-01-05 07:08:22 · 5096 阅读 · 0 评论 -
深入学习java源码之Math.max()与 Math.min()
深入学习java源码之Math.max()与 Math.min()java基本数据类型及自动转型8种基本数据类型及其所占空间大小:一、byte,占用一个字节,取值范围为 -128-127,默认是“\u0000”,表示空二、short,占用两个字节,取值范围为 -32768-32767三、int,占用四个字节,-2147483648-2147483647四、long,占用八个字节...原创 2019-01-05 07:45:42 · 9712 阅读 · 1 评论 -
深入学习java源码之Math.ulp()与 Math.signum()
深入学习java源码之Math.ulp()与 Math.signum()swtich()变量类型只能是int、short、char、byte和enum类型(JDK 1.7 之后,类型也可以是String了)。当进行case判断时,JVM会自动从上到小扫描,寻找匹配的case,可能存在以下情况:当每一个case都不存在break时,匹配成功后,从当前case开始,依次返回后续所有case的...原创 2019-01-05 08:20:30 · 2007 阅读 · 0 评论 -
深入学习java源码之Math.nextAfter()与 Math.nextUp()
深入学习java源码之Math.nextAfter()与 Math.nextUp()java中的前加加++和后加加++前++是先自加再使用而后++是先使用再自加!a = b++; // ++写在后面,说明前面那个东西前用了,也就是b先赋值给a了,然后b再+1a = ++b; // ++写在前面,说明++先有效,即b要+1,然后赋值给a最终效果上是a的值不同,而b的值都做了+1...原创 2019-01-05 09:08:01 · 2049 阅读 · 0 评论 -
深入学习java源码之Math.scalb()与 Math.powerOfTwoF()
深入学习java源码之Math.scalb()与 Math.powerOfTwoF()final关键字final在Java中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量。一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初始化的话,编译器会报编译错误凡是对成员变量或者本地变量(在方法中的或者代码块中的变量称为本地变量)声明为fin...原创 2019-01-05 09:48:22 · 1123 阅读 · 0 评论 -
深入学习java源码之Character.valueOf()与Character.equals()
深入学习java源码之Character.valueOf()与Character.equals()java的静态代码块一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用比...原创 2018-12-31 18:39:40 · 1837 阅读 · 0 评论 -
深入学习java源码之Character.toChars()与Character.codePointCount()
深入学习java源码之Character.toChars()与Character.codePointCount()字符串与数组的转换char[] data = {'a', 'b', 'd'};String s = new String(data);Java 中定义数组的语法有两种: type arrayName[]; type[] arrayName;type ...原创 2018-12-31 18:56:59 · 2682 阅读 · 0 评论 -
深入学习java源码之Character.isUpperCase()与Character.isTitleCase()
深入学习java源码之Character.isUpperCase()与Character.isTitleCase()16进制16进制数排列依次是 0 1 2 3 4 5 6 7 8 9 A B C D E F以10进制来看 F大小就是 15。0xFF 是16进制数,大小就是 F * 16 + F,就是等于255 Modifier and Type Method and ...原创 2018-12-31 19:04:52 · 2328 阅读 · 1 评论 -
深入学习java源码之Byte.decode()与Byte.toUnsignedInt()
深入学习java源码之Byte.decode()与Byte.toUnsignedInt()异常异常就是有异于常态,和正常情况不一样,有错误出错。在java中,阻止当前方法或作用域的情况,称之为异常。其中Error类中包括虚拟机错误和线程死锁,一旦Error出现了,程序就彻底的挂了,被称为程序终结者;Exception类,也就是通常所说的“异常”。主要指编码、环境、用户操作输...原创 2019-01-01 09:48:12 · 3441 阅读 · 0 评论 -
深入学习java源码之Integer.parseInt()与Integer.valueOf()
深入学习java源码之Integer.parseInt()与Integer.valueOf()一般我们创建一个类的时候是通过new关键字,比如:Object obj =newObject(); 但是对于 Integer 类,我们却可以这样:Integer a =128; 为什么可以这样,通过反编译工具,我们可以看到,生成的class文件是:Integer a = Int...原创 2019-01-01 10:12:35 · 1343 阅读 · 0 评论 -
深入学习java源码之System.console()与System.load()
深入学习java源码之System.console()与System.load()static关键字用static修饰变量,称之为静态变量,也叫类变量。在类加载的时候加载到了方法区,并且在方法区中被赋予了默认值。静态变量是先于对象出现的,所以习惯上是通过类名来调用静态变量。每一个对象存储的是这个静态变量在方法区中的地址,所以静态变量是被这个类的所有对象所共享的。静态变量能否定义到构造方...原创 2019-01-04 06:22:23 · 1678 阅读 · 1 评论 -
深入学习java源码之StringBuilder.insert()与StringBuilder.replace()
深入学习java源码之StringBuilder.insert()与StringBuilder.replace()java 字符串初始化=“” 和=null的区别问题一:null和""的区别String s=null;string.trim()就会抛出为空的exception String s=""; string.trim()就不会抛,为什么? 答:NULL代表声明...原创 2019-01-05 16:35:35 · 7015 阅读 · 0 评论 -
深入学习java源码之StringBuilder.indexOf()与StringBuilder.reverse()
深入学习java源码之StringBuilder.indexOf()与StringBuilder.reverse()java的toString()方法在Java中每个类都默认继承Object类,除非声明继承某个类。而Object类中有一个叫做toString的方法。该方法返回的是该Java对象的内存地址经过哈希算法得出的int类型的值在转换成十六进制。这个输出的结果可以等同的看作Java对...原创 2019-01-05 16:51:18 · 2016 阅读 · 0 评论 -
深入学习java源码之FileDescriptor.valid()与FileDescriptor.sync()
深入学习java源码之FileDescriptor.valid()与FileDescriptor.sync()文件描述符类的实例用作表示打开文件,开放套接字或其他字节源或信宿的底层机器特定结构的不透明句柄。 文件描述符的主要实际用途是创建一个FileInputStream或FileOutputStream来包含它。 应用程序不应创建自己的文件描述符。 字段Modifier and Ty...原创 2019-01-01 15:15:34 · 872 阅读 · 0 评论 -
深入学习java源码之Objects.deepEquals()与Objects.isNull()
深入学习java源码之Objects.deepEquals()与Objects.nonNull()不定长度参数如果一个方法的参数定为不定参数的话,这个参数可以根据参数个数动态生成一个数组,然后传入方法执行。 不过,不定参数有两个规定:第一,方法的参数列表中最多只有一个不定长度的参数;第二,就是不定长度的数组的位置必须是最后一个参数。不然不能通过编译。 public stat...原创 2019-01-01 16:12:07 · 2000 阅读 · 0 评论 -
深入学习java源码之Character.Subset与Character.UnicodeBlock
深入学习java源码之Character.Subset与Character.UnicodeBlockhashMap的加载因子new HashMap<>(128); public HashMap(int initialCapacity) { this(initialCapacity, DEFAULT_LOAD_FACTOR); }加载因子 ...原创 2019-01-06 11:11:54 · 1042 阅读 · 0 评论 -
深入学习java源码之 Array.newInstance()与Array.get()
深入学习java源码之 Array.newInstance()与Array.get()Class<T>与Class<?>Class<T>在实例化的时候,T要替换成具体类,固定的泛型指类型是固定的,比如:Interge,String.Class<?>它是个通配泛型,?可以代表任何类型 ,<?>没有extends,则默认是允许Ob...原创 2019-01-01 19:55:56 · 2845 阅读 · 0 评论 -
深入学习java源码之ArrayList.iterator()与ArrayList.listIterator()
深入学习java源码之ArrayList.iterator()与ArrayList.listIterator()内部类的使用典型的情况是,内部类继承自某个类或实现某个接口,内部类的代码操作创建其的外层类的对象。所以你可以认为内部类提供了某种进入其外层类的窗口。 使用内部类最吸引人的原因是:每个内部类都能独立地继承自一个(接口的)实现,所以无论外层类是否已经继承了某个(接口的)实现,对于...原创 2019-01-01 21:50:22 · 1594 阅读 · 0 评论