
COREJAVA
heimeiyingwang
深度技能:JVM调优、高并发架构、分布式事务(Seata)
框架生态:Spring全家桶(Spring Boot/Cloud)、MyBatis-Plus源码级应用
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
corejava辅导(2--3)
java中的数组Array Java中的每一个数组就是都是一个对象,数组声明是包含两个部分,分别是数组的引用和数组的空间两部分。 例: int[] a = new int[10];//构造一个可以放十个int型的数字 | | 数组的引用 数组的空间 声明数组 1) 一组相同类型(可以是类)数据的集合; ...2008-12-13 08:37:12 · 151 阅读 · 0 评论 -
corejava辅导(14--1)
ObjectInputStream和ObjectOutputStream(对象流) 对象流是过滤流,需要节点流作参数来构造对象。用于直接把对象写入文件和从文件读取对象。只有实现了Serializable接口的类型的对象才可以被读写,Serializable接口是个标记接口,其中没有定义方法。对象会序列化成一个二进制代码。 writeObject(o), Object readObject(...2008-12-03 17:08:33 · 107 阅读 · 0 评论 -
corejava辅导(13--2)
BufferInputStream和BufferOutputStream(带缓存的字节流) 以上两个是过滤流,可以提高I/O操作的效率 ,用于给节点流增加一个缓冲的功能。 在JVM的内部建立一个缓冲区,数据先写入缓冲区,等到缓冲区的数据满了之后再一次性写出,效率很高。使用带缓冲区的输入输出流的速度会大幅提高,缓冲区越大,效率越高。(这是典型的牺牲空间换时间) 切记:使用带缓冲区的流,...2008-12-03 17:00:50 · 99 阅读 · 0 评论 -
corejava辅导(13--1)
Java中的I/O 使用I/O流访问file中的内容。 JVM与外界通过数据通道进行数据交换。 分类:按流分为输入流和输出流,按传输单位分为字节流和字符流,还可以分为节点流和过滤流。 节点流:负责数据源和程序之间建立连接。 过滤流:用于给节点增加功能。在关闭流时如果使用了过滤流,只需关闭最外层的流就可以了。 过滤流的构造方式是以其他流为参数构造(这样的设计模式称为装饰模式)并且过滤流本...2008-12-03 16:56:18 · 123 阅读 · 0 评论 -
corejava辅导(12--3)
基本输入输出所使用的类的介绍: FileInputStream和FileOutputStream (文件输入输出流) 以上两个是字节流 1) 结点流,可以对磁盘文件进行操作。 2) 要构造一个FileInputStream, 所关联的文件必须存在而且是可读的。 3) 要构造一个FileOutputStream而输出文件已经存在,则它将被覆盖。 FileI...2008-12-03 16:53:26 · 97 阅读 · 0 评论 -
corejava辅导(12--2)
处理跨平台性 对于命令:File f2=new file(“d:\\abc\\789\\1.txt”) 这个命令不具备跨平台性,因为不同的OS的文件系统的分隔符是不相同。 使用file类的separtor属性,返回当前平台文件分隔符。 File newD = new File("aa"+File.separator+"bb"+File.separator+"cc"); File ...2008-12-03 16:51:36 · 112 阅读 · 0 评论 -
corejava辅导(12--1)
死锁问题 多线程不释放自己拥有的锁标记,而想申请其他线程拥有的锁标记,就会造成死锁。 没有获得加锁对象的锁标记的线程,不能访问只有获得该对象所标记才能访问的同步方法,但可以访问这个对象的非同步的方法。 死锁的两种处理方法 统一排列锁顺序(解决不同方法中对多个共享资源的访问) 对象1的方法 synchronized(a) ...2008-12-03 15:56:15 · 115 阅读 · 0 评论 -
corejava辅导(11--2)
共享数据的并发处理 多线程同时并发访问的资源叫做临界资源。 多个线程同时访问对象并要求操作相同资源时分割了原子操作就会出现问题。(原子操作,不可再分的操作)会出现数据的不一致或数据不完整,为避免这种现象采用对访问的线程做限制的方法。 Synchronized关键字 1.Synchronized修饰代码块(同步代码块), public void push(char c){ ...2008-12-03 15:52:40 · 101 阅读 · 0 评论 -
corejava辅导(11--1)
Java多线程编程 进程,即运行中的程序,多任务操作系统中并发的一个任务(CPU是分时间片执行多个进程的),线程,其本质是进程中顺序的执行流程,进程有独立的进程空间进程中的数据存放空间(对空间和栈空间)是独立的。线程没有独立的存放数据的空间,数据存储空间(堆空间)是共享的,线程间的栈空间是独立的,线程消耗的资源比进程小。 线程,是进程(运行中的程序)中顺序的执行流程,进程可以划分出多个线程...2008-12-03 15:46:29 · 113 阅读 · 0 评论 -
corejava辅导(14--2)
JAVA网络编程 网络基础知识 网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。 计算机网络形式多样,内容繁杂。网络上的计算机要互相通信,必须遵循一定的协议。目前使用最广泛的网络协议是Internet上所使用的TCP/IP协议。 IP地址:计算机在网络中唯一标识,相对于internet,IP为逻辑地址。 IP地址分类 A类地址 A类地址第1字节为网络地址,其它3...2008-12-03 17:10:05 · 98 阅读 · 0 评论 -
corejava辅导(14--3)
TCP Socket TCP是Tranfer Control Protocol的简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket...2008-12-03 17:13:03 · 107 阅读 · 0 评论 -
corejava辅导(14--4)
UDP socket 这种信息传输方式相当于传真,信息打包,在接受端准备纸。 特点: 1) 基于UDP无连接协议 2) 不保证消息的可靠传输 3) 它们由Java技术中的DatagramSocket和DatagramPacket类支持 DatagramSocket(邮递员):对应数据报的Socket概念,不需要创建两个socket,不可使用输入输出流。 DatagramPacket(信件):...2008-12-03 17:15:19 · 117 阅读 · 0 评论 -
corejava辅导(17--3)
*1: 名为DoCallStuff类实现了Callable,String将是call方法的返回值类型。例子中用了String,但可以是任何Java类。 *2: call方法的返回值类型为String,这是和类的定义相对应的。并且可以抛出异常。 *3: call方法可以抛出异常,如加重的斜体字所示。 以下是调用DoCallStuff的主程序。 import java.util.concurrent....2008-12-03 17:53:48 · 125 阅读 · 0 评论 -
corejava辅导(17--2)
处理自定义注释的类 例: import java.lang.reflect.*; public class TestFramework { public static void main(String[] args) throws Exception { Class c=Class.forName("MyClass2");//获取有注释的类的类对象 M...2008-12-03 17:51:27 · 109 阅读 · 0 评论 -
corejava辅导(17--1)
JAVA5.0 的注释 (Annotation) 描述代码的代码。给编译器看的代码,作用是规范编译器的语法。 class Student{ @Override public String toString(){ return “student”; } } 类型(接口) 1. 标记注释 标记注释中没有属性,所以也不需要为属性赋值 ...2008-12-03 17:48:32 · 124 阅读 · 0 评论 -
corejava辅导(16--4)
泛型方法的定义 把数组拷贝到集合时,数组的类型一定要和集合的泛型相同。 <...>定义泛型,其中的"..."一般用大写字母来代替,也就是泛型的命名,其实,在运行时会根据实际类型替换掉那个泛型。 需要泛型参数或返回值同时又是某个类的子类又是某个接口的实现类的时候,可以使用 <? extends Xxxx & Xxxx>这种写法,注意:接口类型要放在类的后面,且...2008-12-03 17:46:25 · 122 阅读 · 0 评论 -
corejava辅导(16--3)
java5.0中的泛型 说明 增强了java的类型安全,可以在编译期间对容器内的对象进行类型检查,在运行期不必进行类型的转换。而在java se5.0之前必须在运行期动态进行容器内对象的检查及转换,泛型是编译时概念,运行时没有泛型 减少含糊的容器,可以定义什么类型的数据放入容器 List<Integer> aList = new ArrayList<Int...2008-12-03 17:44:29 · 110 阅读 · 0 评论 -
corejava辅导(16--2)
可变长的参数 在java5.0中,可以使用一种变长参数,也就是例如m(String… s)的东西,编译器会自动的将方法调用时的参数适当的封装成数组 5.0之前 public class Test{ public static void main(String[] args){ } } JVM收到数据封装在数组里,然后传入方法 5.0之后 public class Test{ public stat...2008-12-03 17:29:53 · 110 阅读 · 0 评论 -
corejava辅导(16--1)
Java5.0的新特性 自动装箱和自动拆箱 自动封箱和自动拆箱,它实现了简单类型和封装类型的相互转化时,实现了自动转化。 自动封箱解箱只在必要的时候才进行。还有其它选择就用其它的 byte b -128~127 Byte b 多一个null 简单类型和封装类型之间的差别 封装类可以等于null ,避免数字得0时的二义性。 Integer i=null; int i...2008-12-03 17:25:40 · 130 阅读 · 0 评论 -
corejava辅导(15)
反射 反射,在运行时,动态分析或使用一个类进行工作。 类对象,是一个描述这个类信息的对象,对虚拟机加载类的时候,就会创建这个类的类对象并加载该对象。Class,是类对象的类型。只有对象才会被加载到虚拟机中。一个类只会被加载一次。 获得类对象的三种方式:(类对象不用new的方法得到的) 1)也可以用 类名.Class,获得这个类的类对象。 2)用一类的对象掉用a.getClass(),得...2008-12-03 17:18:47 · 119 阅读 · 0 评论 -
corejava辅导(10--2)
在Java的图形编程中,所有动作(事件)都已经提供了相应的事件对象和事件监听接口,例如:实现窗口的关闭按钮,点击关闭按钮会发出相应的事件对象,相应的调用监听器中实现好的方法。相应的方法清参阅Java2 SE API帮助文档。 在图形界面中的添加事件监听的方法 1,组件是事件源,我们实现监听器借口 2,对组件调用addXXXListener()方法,把监听器注入进去。 在java.awt...2008-12-03 15:18:22 · 100 阅读 · 0 评论 -
corejava辅导(10--1)
awt事件模型(观察者模式)(重点) 事件模型中,包括事件源对象,事件处理者(事件监听者对象),事件对象。 事件源和事件处理者之间建立了授权关系,事件源类中有一个事件处理者的对象作为属性,也可能是一个事件处理者的集合。 事件对象 事件源————————〉事件处理者 事件模型的机制,事件源对象发送一个消息(事件对象),事件处理者调用相应的方法处理事件...2008-12-03 15:14:34 · 124 阅读 · 0 评论 -
corejava辅导(9)
java中的图形界面 GUI,图形化的用户接口,为了人机交互使用的。 构造图形界面的步骤 1,选择一个容器 2,设置容器的布局管理器 3,向容器添加组件 4,事件的监听 容器(Container)用于管理其他的组件的对象。组件必须放到容器里。 JFrame,这是一个最顶层的窗体容器,所有其他的组件必须放在顶层容器里。 JDialog 对话框容器,他要依附于其父组件,他不是一个顶层容器。...2008-12-03 15:12:36 · 127 阅读 · 0 评论 -
corejava辅导(4--2)
super关键字 super(),表示在子类的构造方法中调用父类的构造方法(可以通过这种方法在子类的构造方法中初始化父类中的属性),super()只能出现在构造方法的第一句上。super(),在子类的构造方中指明构造父类时调用哪一个父类的构造方法构造父类。 super,表示一个父类的对象,可以通过super来使用父类中可以访问的方法(可以在父类中定义setXxx(),getXxx()方法来...2008-12-03 12:58:01 · 104 阅读 · 0 评论 -
corejava辅导(4--1)
面向对象的三大特征:封装、继承、多态 Java中的封装 封装,一个对象和外界的联系应当通过一个统一的接口。 对象中的内容应当公开的公开,应当隐藏的隐藏。(对象的属性应当隐藏) 一个对象的内部是透明的,把对象内部的可透明性和隐藏的特性区分开,该透明的透明,该隐藏的隐藏。 属性的封装,java中类的属性的默认访问权限不是private,是default,不加访问权限修饰符的属性和方法默认为...2008-12-03 12:04:03 · 106 阅读 · 0 评论 -
corejava辅导(3)
面向对象的思想 anything is Object(万物皆对象) 抽象,从对具体的对象中抽取有用信息。 对象的特征就是其固有属性,对象的方法,就是对象的行为(对象能做什么) 对象本身是简单的(功能简单),多个对象可以组成复杂的系统(对象之间彼此调用对方的方法) 对象应当是各司其职(功能简单),各尽所能(把自己的功能作到最好)。(弱耦合性实现了前面所述的对象的特点) 对象的耦合性,...2008-12-03 11:59:46 · 124 阅读 · 0 评论 -
corejava辅导(2--2)
java中的运算符(java的运算符的优先级和结合性和c++相同) 1)使用+=、-=、*= 等单目运算符时,不会对变量类型作自动类型提升。 2) >>= 有符号位右移,符号位是零补零,符号位是一补一,也就是高位补符号位; 3) >>>= 无符号右移(强制右移都会移进一),也就是高位补零 >>=和>>>=对于负数不...2008-12-03 11:50:07 · 108 阅读 · 0 评论 -
corejava辅导(2--1)
Java中的变量 局部变量,定义在函数(方法)内部的变量。 例: public class Test{ static void test(){ boolean falg=false;//falg是局部变量,他的有效范围市整个方法体 if(!falg){ int a=20; //局部变量a,是必须进行初始化...2008-12-03 11:47:38 · 117 阅读 · 0 评论 -
corejava辅导(1--3)
六、标识符(变量名)和关键字 Java代码中的“;”、“{}”、“ ” Java语句以分号分隔,Java代码(除包、类的定义和import之外)是包含在大括号内,忽略空格。 标识符 1) 用以命名类、方法和变量、以及包遵守JAVA的命名规范类以每个单词都以大写字母开头。方法和变量第一个字母不大写,常量名都大写,包名都用小写字母。 2) 只能以字符、“_”或“$”开头,可以使用数字,字符以...2008-12-03 11:40:13 · 100 阅读 · 0 评论 -
corejava辅导(1--2)
接下来带包的类是需要生成在指定的目录结构中的,javac命令的 –d 命令行参数可以自动生成包的目录结构 javac –d . HelloWorld.java (–d . 指定包结构生成在当前目录中) java test.java.HelloWorld 注意:在运行有包的类文件时,一定要在包的所在的目录 import 关键字,在使用其他包中的类文件,在类中,可以不...2008-12-03 11:38:54 · 117 阅读 · 0 评论 -
corejava辅导(1--1)
一、Java简介 Java语言是编译后再解释执行,Java源码是通过编译生成一种特殊的.class的中间字节码文件,然后再有JVM进行解释执行,JVM(Java虚拟机)是运行在操作系统中,用来屏蔽的系统间的差异。Java虚拟机处理编译后的字节码,并根据不同的系统来申请相应的资源,这样就可以保证程序的运行正常,在Java虚拟机的基础之上,由解释器来解释执行字节码文件。 .class 运行时解...2008-12-02 20:44:58 · 121 阅读 · 0 评论 -
corejava辅导(4--3)
多态的使用 多态用于参数,在方法的参数中传入其父类类型,在运行时会根据实际的运行时类型来在方法中进行相应的操作。 多态用于返回值,在方法的返回值类型上是用其实际返回值的父类型,在使用其返回值时也不必关心其实际类型。 多态使代码变得更通用,以适应需求的变化。定义在父类中的方法,可以在子类中有不同的实现将其覆盖,在为父类型的对象引用赋值相应需要功能的子类的对象实例。 例: public cla...2008-12-03 12:59:32 · 106 阅读 · 0 评论 -
corejava辅导(5--1)
java中的修饰符 static 表示静态,它可以修饰属性,方法和代码块。 1,static修饰属性(实例变量)(类变量),这个属性就可以用 类名.属性名 来访问,这个属性成为本类的类变量,为本类对象所共有。这个属性全类公有。(共有的类变量与对象无关,只和类有关)。 例: public class Test{ private static int testnum; /* 如果实力...2008-12-03 14:13:46 · 106 阅读 · 0 评论 -
corejava辅导(5--2)
final修饰符,可以修饰变量,方法,类 1, final修饰变量(包括局部变量和实例变量) 被final修饰的变量就成为常量(常量名应当大写),一旦赋值不能改变,(可以在初始化时直接赋值,在构造方法里可以为其赋值,只能在这两种方法里二选一,常量不能不赋初值),常量没有默认初始值,final修饰符常和static修饰符一起使用。 例: public class Test{ priva...2008-12-03 14:15:08 · 92 阅读 · 0 评论 -
corejava辅导(8--3)
HashMap,是Map接口的实现类,Key时无序存放的,其中Key是不可以重复的,它也是通过Hash码值来保证Key不重复的,Key和value是一一对应的。如果要加入的键值对和HashMap中键值对的Key是相同的就会将这个集合中的Key所队应的value值进行覆盖,在使用自定义类型作为Key时,那就是要覆盖hashCode(),equals()方法,也就是和HashSet中要放入自定义类型是...2008-12-03 15:09:28 · 102 阅读 · 0 评论 -
corejava辅导(8--2)
实现堆栈 1,数组(ArrayList,增删效率比较低,不适合) 2,LinkedList(实现堆栈的好方法) 3,java.util.Stack类,Stack是Vector的子类,Vector类是一个线程安全的(是一个重量级的类),并继承了Vector的方法,Verctor类(这个类也是List接口的实现类)和ArrayList的功能近乎相同。(不推荐使用Stack类来实现堆栈)。 Set...2008-12-03 14:55:51 · 113 阅读 · 0 评论 -
corejava辅导(8--1)
集合类 集合(集合类的对象)是管理其他若干对象的,类似于C++标准模板库中的容器,不过JAVA的集合类的对象中可以存放多种类型的对象。 接口和类共同构成了一个集合框架,集合的概念,一个对象可以装载多个对象,就是集合对象。 集合框架 1,集合接口 Collection接口 List接口 Set接口 ...2008-12-03 14:41:11 · 97 阅读 · 0 评论 -
corejava辅导(7--3)
finally关键字 finally{……}在finally语句块中的代码无论如何都会运行 try,catch后还可以再跟一个finally块。finally块中的代码语句无论如何(无论有没有异常)都会执行(finally块多写一些释放资源,关闭连接的代码)。finally块中的代码在和try块中的代码的冲突时,finally块中的代码一定会执行且会忽略try块中的代码。但是System...2008-12-03 14:25:54 · 125 阅读 · 0 评论 -
corejava辅导(7--2)
局部内部类 局部内部类是定义在方法中的内部类。 局部内部类不能够加权限修饰符,其范围为定义它的代码块。 注意:局部内部类不仅可以访问外部类私有实例变量,但可以访问外部类的局部常量(也就是局部变量必须为final的) 局部内部类的特点:不能直接访问局部内部类(保证局部内部类对外是不可见的),只有在方法中才能访问其局部内部类。 局部内部类的作用 通过内部类和接口达到一个强制的弱耦合...2008-12-03 14:23:57 · 115 阅读 · 0 评论 -
corejava辅导(7--1)
Java封装类 Java为每一个简单数据类型提供了一个封装类,每个简单数据类型可以封装成对象类型。 除int(Integer)和char(Character),其余类型首字母大写即成封装类类型名。double (Double), float(Float),long(Long), short(Short),byte(Byte),boolean(Boolean) 转换字符的方式: int...2008-12-03 14:21:06 · 110 阅读 · 0 评论