- 博客(23)
- 收藏
- 关注
转载 Java反射
一、反射概述1.1 框架在学习Java的路上,相信你一定使用过各种各样的框架。所谓的框架就是一个半成品软件,已经对基础的代码进行了封装并提供相应的API。在框架的基础上进行软件开发,可以简化编码。学习使用框架并不需要了解反射,但是如果想要自己写一个框架,那么就需要对反射机制有很深入的了解。1.2 为什么需要反射 Java程序中的许多对象在运行时都会出现两种类型:编译时类型和运行时类型,例如代码: Personp =new Student();,这行代码将会生成一个p变量,该变量的编译时类型为Per
2021-06-15 15:10:46
159
2
原创 Java网络编程
一、概述网络编程就是在网络通信协议下,实现两个或两个以上的设备之间的数据交换。我们要做的就是把数据发送到指定的位置,或者接收到指定的数据。网络编程三要素:IP地址+端口+协议二、相关名词解释1、计算机网络 计算机网络就是把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使计算机间可以方便地互相传递信息、共享硬件、软件等资源。 计算机网络是现代通信技术与计算机技术相结合的产物,有以下主要功能:资源共享信息传输与集中处理均衡负载与分布处理综合
2021-05-24 21:20:03
237
原创 Java异常
一、概述 在程序运行过程中出现的错误,称为异常。Java中,把各种异常现象进行了抽象形成了异常类。二、异常分类异常都继承自Throwable类。分为Error、Exception两大类:1、Error(错误) 此类错误通常为虚拟机相关错误,如系统崩溃,内存不足,堆栈溢出等。是程序中无法处理的错误,非代码性错误,表示出现了严重的错误,一旦这类错误发生,通常应用程序会被终止,仅靠应用程序本身无法恢复;2、Exception 程序本身可以捕获并且可以处理的异常。该类异常又分为两大类:
2021-05-20 20:21:38
121
原创 Java数组
1、概念数组是指具有相同数据类型的集合,他们一般具有固定的长度,并且在内存中占连续的空间;2、一维数组静态初始化:初始化时显式指定每个数组元素的初始值,由系统决定数组长度。int[] array={1,2,3,4,5};动态初始化:初始化时只指定数组长度,由系统为数组元素分配初始值。int[] array=new int[5];//初始化默认值为0;数组是不是对象?:由于对象的特点是封装了一些数据,并提供了一些属性和方法,所以从这个角度来说数组是对象;3、二维数组定义:in
2021-05-20 09:29:16
133
转载 乐观锁与悲观锁
何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Jav
2021-05-19 10:35:00
68
原创 多线程(基础)
一、前言Ⅰ程序、进程、线程的区别程序:是为完成特定任务,用某种语言编写的一组指令的集合,即指一段静态的代码,静态对象。进程:是程序的一次执行过程,或是正在运行的一个程序,是一个动态的过程,有它自身的产生,存在和消亡的过程。线程:进程可进一步细化为线程,是一个程序内部的一条执行路径(一个进程可以有多个线程)Ⅱ 并发、并行、串行串行:顺序依次执行多件事情(做完一件事后再去做另一个);并发:同一时间段执行多件事情(交替做多件事情);在计算机中就是一个CPU(采用时间片轮转)在同一时间
2021-05-19 08:24:11
124
转载 ReentrantLock基础
概述ReentrantLock表示可重入锁,与synchronized一样,都是属于可重入锁。与synchronized相比具有如下特点:可中断:synchronized只能等待同步代码块执行结束,不可以中断,而reentrantlock可以调用线程的interrupt方法来中断等待,继续执行下面的代码。可以设置超时时间:调用lock.trylock(),如果没有设置等待时间的话,没获取到锁,将返回false可以设置为公平锁:公平锁其实是为了解决饥饿问题,当一个线程由于优先级太低的时候,就可能没
2021-05-18 09:35:04
98
原创 集合
一、概述Java是面向对象的语言,我们在编程的时候自然需要存储对象的容器,数组可以满足这个需求,但是数组初始化时长度是固定的,但是我们往往需要一个长度可变化的容器,因此,集合出现了。Java集合主要由两个接口而派生出:Collection、Map;斜体的为接口,正体的为实现类;二、集合与数组的区别(1)长度区别:集合长度可变,数组长度不可变(2)内容区别:集合可存储不同类型元素,数组存储只可单一类型元素(3)元素区别:集合只能存储引用类型元素,数组可存储引用类型,也可存储基本类型三、Co
2021-05-14 10:13:05
136
原创 IO流
一、分类按流的方向①输入流:数据从别的地方(文件、网络等)输入到我们写的程序中,即读的过程;②输出流:数据从我们的程序中输出到别的地方(本地文件),即写的过程。按数据单位①字节流:每次du②字符流...
2021-05-08 23:05:00
671
原创 final
一、final变量final修饰的变量叫常量。①final修饰基本数据类型的变量时,值不能被改变;②final修饰引用变量时,该引用变量不能再指向其他对象,但对象的内容可以改变;(因为对象值可以改变,所以通常final与static一起使用,以实现真正的不可变)③final修饰的变量必须被初始化;初始化有以下几种方式:1.可以在定义时初始化;2.非static变量可以在初始化块中初始化,但不能在静态初始化块中;3.static修饰的可以在静态初始化块中,但不能在初始化块内;4.可以在构造
2021-04-25 18:46:16
141
原创 内部类
Ⅰ概述在Java中,可以将一个类的定义到另外一个类的定义内部,这就是内部类。内部类本身就是类的一个属性,与其他属性定义方式一致。Ⅱ分类内部类可以分为四种:成员内部类、局部内部类、匿名内部类和静态内部类。Ⅲ定义class outClass{ //...//外部类成员变量 class innerClass1{ //成员内部类成员 } public void method(){ class innerClass2{ /
2021-04-24 19:57:53
119
原创 静态成员(static)
Ⅰ概念由static修饰的变量、常量、方法被称作静态变量、常量、方法;在类被加载时static修饰的成员变量被初始化,与类关联,只要类存在,static变量就存在。一个static变量单独划分一块存储空间,不与具体的对象绑定在一起,该存储空间被类的各个对象所共享。Ⅱ静态成员的访问静态成员用类名.静态成员来调用,也可以通过对象.静态成员调用,但不推荐;Ⅲ作用static可以修饰变量、常量、方法、代码块、内部类,使这些成员可以让多个对象共享;Ⅳ特点①静态成员属于类所有,不属于某个对象,是多个对象共
2021-04-24 16:03:45
1657
原创 面向对象
一、类类实际上就是封装对象属性和行为的载体;(一)、变量分类按作用范围:成员变量:类的属性,属于对象所有,全局都有效,有默认值;局部变量:方法中的属性,该方法中有效,没有默认值,存在于栈中;静态变量:static修饰,属于类所有,该类所有对象共享;按变量类型:基本数据类型变量:指向基本数据的变量;引用类型变量:指向引用类型的变量;(二)、常量程序运行过程中不会改变的量称为常量,常量在程序中只能被一次赋值,用final修饰;当常量被定义为成员变量时,必须在定义时设置初始值,否则报错;
2021-04-24 14:06:26
117
原创 包装类
包装类一、概述Ⅰ、为什么需要包装类?首先,Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,将每个基本数据类型设计一个对应的类进行代表,这种方式增强了Java面向对象的性质。其次,如果仅仅有基本数据类型,那么在实际使用时将存在很多的不便,很多地方都需要使用对象而不是基本数据类型。比如,在集合类中,我们是无法将int 、double等类型放进去的,因为集合的容器要求元素是Object类型。而包装类型的存在使得向集合中传入数值成为可能,包装类的存在弥补了基本数据类型的不足。
2021-04-22 10:41:04
87
原创 Math类
一、Math类常用Math方法:方法意义Math.abs(x);取绝对值Math.round(x);四舍五入返回值为longMath.sqrt(x);√(x)、 x的二次方根Math.cbrt(x);返回该数的立方根Math.max(x, y);返回x、y中较大的那个数Math.min(x, y);返回x、y中较小的那个数Math.pow(x, y);返回 x的y次幂Math.random();随机返回[0,1)之间的无符号d
2021-04-21 21:02:54
70
转载 日期类
jdk1.8之前的时间日期类一、Date类java.util.Date(父类)java.sql.Date(子类)1.掌握构造器的使用java.util.Date() //无参构造器java.util.Date(long Date) //创建指定毫秒数的Date对象java.sql.Date(long Date) //java.sql.Date 没有无参构造方法2.两个常用方法的使用toString()方法 //直接返回当前时间getTime() 方法 //返回1970年至今的毫秒数//此
2021-04-21 15:46:01
206
原创 BigInteger、BigDecimal大数据类
一、BigInteger大整型类基本数据类型在表示整型时最大值为2^63-1,即long类型所表示的上限;但想要表示更大的数时long类型肯定不行,所以就要使用大整型类BigInteger;但其不能像基本数据类型一样直接使用“+、-、*、/”符号进行运算操作,需要通过自身的方法操作;常用方法:构造器:BigInteger bi=new BigInteger(String value);BigInteger add(BigInteger val) 返回两个大整数的和BigInteger subtr
2021-04-20 15:38:21
219
原创 数据格式化(DecimalFormat)
数据格式化一、DecimalFormat类此类在java.text包下;方法:DecimalFormat(String pattern):有参构造,实例化时指定格式;DecimalFormat():无参构造;applyPattern(String pattern):设置格式;format(value):将数据格式化;setGroupingSize(int size):设置将数字分组的大小setGroupingUsed(boolean true):设置是否支持分组pattern:①、0
2021-04-08 14:42:57
2810
原创 Java基础三(字符串)
一、字符串声明与初始化字符串的声明与初始化有如下两种:① String s1=new String(“abc”);在堆中创建字符串对象abc(堆中的对象是不共享的)如果再String s2=new String(“abc”);则会再次在堆中创建abc对象;也就是说s1、s2是不同的两个对象;String s1=new String(“abc”);语句执行过程可以分为两部分;第一部分:创建对象,即 new String(“abc”) ,调用了String类的构造函数第二部分:赋值,即.
2021-03-14 13:27:18
235
原创 Java基础二(数据类型)
一、数据类型Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间。分类:1.基本数据类型整型:byte、short、int、long浮点型:float、double字符型:char布尔型:boolean2.引用类型类、接口、数组注意:String不是基本数据类型,是一个类,是引用数据类型...
2021-03-12 14:44:07
181
原创 Java基础一(Java相关介绍)
一、Java语言特点1.简单易学:Java的语法与C,C++很接近。2.面向对象(封装,继承,多态)3.可移植性(Java虚拟机实现平台无关性):即跨平台性,所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行。(跨平台性原理:Java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟机,该系统就可以运行java程序)。4.支持多线程:多线程机制使应用程序在同一时间并行执行多项任务。5.健壮性:Java语言的强类型机制、异常处理、垃圾的自.
2021-03-10 15:44:01
143
2
原创 Dos简单命令
打开命令行窗口:win+R+输入cmd切盘:盘名+英文冒号 | d:打印当前目录:dir切换目录(进入子目录):cd+空格+文件名返回上一级目录:cd…查看电脑IP:ipconfig查看网站:ping+空格+网站地址|ping www.baidu.com创建文件夹:md+空格+文件夹名 |md newdirtory删除空文件夹:rd+空格+文件夹名 |rd dirtory创建文件:cd>文件名 |cd>newfile删除文件:del+空格+文件名 |del file清屏:.
2021-03-07 15:46:52
46
原创 Markdown基本语法
Markdown笔记标题#+空格+标题名(#的个数代表几级标题)如:# 一级标题 ## 二级标题引用大于号+内容字体斜体:文字两边各加一个*加粗:文字两边各加两个**删除线:文字两边各加两个~~分割线三个杠:—图片英文感叹号+[]+()[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BzP8vKIq-1615100544628)(D:\截图\Snipaste_2021-03-07_10-17-21.p
2021-03-07 15:04:07
185
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人