Java 基础
文章平均质量分 53
Java基础知识点记录学习
GZ-豆浆油条
嘿!今天的你 过得还好吗?
展开
-
Java基础 目录
初识Java编码格式 关键词 编译命令Java语言基础 运算符以及优先级 “==”和equals instanceof 值传递和引用传递 关键字流程控制 swith语句 break、continue、return字符串String生成器 String3 String2 String1数组 数组类和对象 构造函数 类方法和实例方法 this和super 修饰符 成员原创 2017-10-28 21:59:30 · 595 阅读 · 0 评论 -
Java性能监控
Java内存分析导出内存映像文件1.在启动Java程序的时候加入一下参数,当发生内存溢出的时会自动生成内存映像文件;其中XX:HeapDumpPath指定导出文件的路径-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./2.通过jmap命令实时导出map -dump:format=b,file=heap.hprof Java进程的pid内存分析将生成的内存印象文件导入到mat中,可以协助我们快速定位那个方法或者对象所占用的内容较多。mat的下原创 2020-08-30 15:00:03 · 218 阅读 · 0 评论 -
设计模式之代理模式
定义代理模式:为其他对象提供一种代理以控制对这个对这个对象的访问。动态代理的常用实现方式就是通过反射。实现静态代理被代理类public class UserService { public void login(){ System.out.println("登录校验"); }}该类的静态代理类public class UserServiceStaticProxy { private UserService userService; p原创 2020-07-26 17:39:12 · 129 阅读 · 0 评论 -
java多线程的生命周期
线程的生命周期线程的状态分为5种:1.New(新建):线程对象已经被创建,但是还没有调用该实例的start()方法;此时线程尚未获取运行所需的任何系统资源;2.Runnable(就绪):线程已经调用start()方法,可以被调度执行;此时线程已经获取运行所需的系统资源;但是此时的线程并不是正在执行,仅是具备被调度执行条件而已。3.Running (运行):线程被JVM的线程调度分配了CPU的执行时间原创 2017-10-06 11:16:29 · 258 阅读 · 0 评论 -
类方法和实例方法
类方法(静态方法):static关键字修饰的方法;因为 类方法的使用不依赖于对象的是否已经创建了。所以可以通过“类.方法”直接调用;实例方法:用”对象.方法”的方式,必须依赖对象被创建后才能使用。package test11;/** * 在类方法(静态方法)中调用本类的类方法时可直接调用 * 非静态的方法(实例方法)用"对象.方法"的方式,必须依赖对象被创建后才能使用 * *补充:Jav原创 2017-11-13 22:38:39 · 2064 阅读 · 0 评论 -
Java:多态性
Java的多态通过重载和重写体现。1.重载(overload)重载是在一个类中多态性的一种体现;指方法名相同,但是参数类型和参数的顺序不同。重载是通过参数列表不同来区分的。(不同的参数个数、参数类型、参数顺序)不能通过访问权限、返回值类型、抛出的异常类型来进行方法的重载2.重写、覆盖(override)重写:派生类覆盖基类的函数派生类中的覆盖方法必须要和基类中被覆盖的函数的方法有相同的函数名原创 2017-10-14 13:48:31 · 202 阅读 · 0 评论 -
JAVA中的关键词和单位
Java的三个平台: JavaSE(Java Standard Edition):用于桌面应用开发的Java平台; JavaEE(Java Enterprise Edition):用于可扩展的企业级应用开发的Java平台; JavaME(Java Micro Edition):用于嵌入式应用开发的Java平台。constructor:构造函数call by reference:引用传递...原创 2017-10-04 11:18:19 · 3454 阅读 · 0 评论 -
HashMap的存储
定义:HashMap中每一个键只能映射一个键,当有重复的键的时候不会重复创建新的映射关系;而是使用先前的key。实例代码1package Test_10;import java.util.HashMap;import java.util.Iterator;import java.util.Map;public class Test { public void testHashMap()原创 2017-10-18 23:01:04 · 263 阅读 · 0 评论 -
数组
二维数组: 通过new 关键字来数组申请空间时候行数不能为空package test11;/** * 格式:type arrayName[][] = new type[行数][列数] * @author msi * */public class ArrayTest { //编译通过 float []a[] = new float[6][6]; float [][原创 2017-11-11 22:50:41 · 191 阅读 · 0 评论 -
Java中的this和super
1.thisjava用this指向当前对象可以用来区分对象的成员变量与方法的形参 private String name; public Test(String name){ this.name = name; }2.super1.可以用来访问父类的方法或者成员变量 2.当子类构造函数需要显性调用父类的构造函数的时候,super()必须为构造函数的第一语句。原创 2017-10-15 19:46:14 · 192 阅读 · 0 评论 -
Object类
java.lang.Object类Object是类层次结构中的跟类。每个类都使用Object作为超类;所有的对象(数组)都可是实现这个类的方法。Object类中的方法:clone():创建并返回一个对象的副本;equals():比较对象内容之间是否相等;finalize(): 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法;getClass():返回此 Object原创 2017-10-24 20:27:17 · 170 阅读 · 0 评论 -
构造函数
定义:构造函数是一种特殊的函数,用来在对象实例化时初始化对象的成员变量。特点构造函数必须很类名相同,没有返回值;每个类可以有多个构造函数构造函数伴随着new操作一起调用,而且不能由程序的编写者直接调用,必须要由系统调用。构造函数在对象实例化的时候会被自动调用,且只能运行一次。构造函数不能够被继承new和反射都会用到构造方法原创 2017-10-24 20:16:31 · 478 阅读 · 0 评论 -
公平锁和非公平锁
转载于《Java多线程核心技术》定义: 公平锁:按照线程加锁的顺序来分配,即先来先得FIFO; 非公平锁:一种获取锁的抢占机制,是随机的获得锁的,这样可能会有些线程一直会拿不到锁,结果也就是不公平的。1.公平锁实例代码:package test.Thread4;import java.util.concurrent.locks.ReentrantLock;class转载 2018-01-11 10:53:14 · 190 阅读 · 0 评论 -
Java:RuntimeException和checked Exception
定义: 1.checked Exception:指程序代码中必须要捕获的异常(在函数内抛出,函数必须声明,因为调用者对该异常进行处理),否则无法通过编译;2.RuntimeException及其子类都属于非检验异常,其他异常为检查异常;RuntimeException不需要程序员在编译的时候捕获处理。常见的checked Exception 1.InterruptedException:中断故障原创 2017-11-12 08:59:17 · 280 阅读 · 0 评论 -
Collections工具类的简单使用
背景最近项目需要对list,Map等这些集合接口进行排序,自然就想到Collections这个工具类。我们都知道Collections是一个针对集合类的一个包装类。提供了对集合进行排序,搜索、线程安全化等操作。排序1.demo1下面简单看看一个demo实现对list进行排序package com.mark;import java.util.Arrays;imp...原创 2018-09-06 22:03:40 · 173 阅读 · 0 评论 -
公平锁和非公平锁
转载于《Java多线程核心技术》定义: 公平锁:按照线程加锁的顺序来分配,即先来先得FIFO; 非公平锁:一种获取锁的抢占机制,是随机的获得锁的,这样可能会有些线程一直会拿不到锁,结果也就是不公平的。1.公平锁实例代码:package test.Thread4;import java.util.concurrent.locks.ReentrantLock;class Se转载 2018-01-08 22:57:56 · 575 阅读 · 0 评论 -
Condition:实现生产者、消费者一对一交替打印
生产者线程在set()方法中打印一条语句 消费者线程在get()方法中打印一条语句 (这个两个打印语句交替进行)、 。。。。实例代码:package test.Thread4;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;class转载 2018-01-08 21:56:02 · 342 阅读 · 0 评论 -
异常和断言3
1.断言JDK1.4版本中引入了新的特性,允许程序员代码中加入一些检查语句而无需要编写异常处理程序。主要用于调试目的。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默认是不启动断言检查的(这原创 2017-09-30 15:57:05 · 290 阅读 · 0 评论 -
Java中的正则表达式
1.基本元字符:+: 出现1次或者多次;(至少一次)*: 0次、1次或者多次;(任何次数)?:0次、1次(最多一次)$: 匹配结尾位置^: 匹配开始位置(? <= exp):匹配前面是exp的数据;(?<!exp):匹配前面不是exp的数据;(?= exp):匹配后面是exp的数据;(?!=exp):匹配后面不是exp的数据。菜鸟教程中正则表达式中的元字符2.用到的相关类:原创 2017-09-01 15:19:21 · 324 阅读 · 0 评论 -
switch
思考: switch()语句能否作用在byte上,能否作用在long上,能否作用在String上?在switch(表达式)中,表达式只能是一个整数的表达式或者是枚举常量;即整数表达式的可以是int基本类型或者是Integer包装类,由于byte、short,char类型都可以隐式转换成int型,所以这些基本类型以及这些类型的包装类都可以作用在switch语句上。但是long和String类型都不符合原创 2017-10-28 21:38:07 · 259 阅读 · 0 评论 -
Java基本概念
编码格式:GBK,UTF-8,Unicode1.Unicode Unicode是计算机科学领域中的一项业界标准,包括了字符集、编码方案;它为每一种语言中的每一个字符设定了统一并且唯一的二进制编码!1.1:Java的字符类型采用的是Unicode编码方案,每个Unicode码占用16个比特位;因为Java中的一个Unicode占2个字节(byte),一个字节等于8个比特位(bit),所以每个Unic转载 2017-10-04 10:15:21 · 302 阅读 · 0 评论 -
Java中的值传递和引用传递
值传递:实参把它的值传递给形参,形参只是用实参的值初始化一个临时的存储单元(即:实参和形参有着相同的值,但是存储单元不同),所以形参的值的改变不会引起实参的改变。引用传递:传递的对象的地址(可以把引用传递看做的是对象地址的值传递),这时因为形参和实参指向的是同一块存储单元,因此形参的值修改就会影响实参的值。 在Java语言中,原始数据类型在传递参数的时候都是按照值传递的,而包装类型在传递参数的时原创 2017-10-30 14:09:46 · 215 阅读 · 0 评论 -
java中的多线程
1.基本定义 1.1进程:正在进行中的程序。其实就是一个应用程序运行时的内存分配空间; 1.2线程:又称为轻型进程,是分配资源和程序运行的最小单位。进程负责的就是应用程序的空间标示,而线程负责的是应用程序的执行顺序。2.在Java语言中,多线程是的机制是通过虚拟CPU实现的;通过java.lang.Thread类可以实现虚拟CPU的功能。返回当前线程的名称的方法:Thread.currentT原创 2017-10-06 09:34:41 · 175 阅读 · 0 评论 -
基本数据类型和包装类
Java中的数据类型包括(基本数据类型和引用类型)基本数据类型(原生类、内置类型)8种 基本数据类型都是有符号的,而且它们的取值范围都是已经固定的。byteshortintlongfloatdoublecharboolean整数类型:(byte,short,int,long) 浮点类型:(float、double) 逻辑类型:(boolean) 字符类型:(char)不同的原创 2017-10-06 13:33:51 · 573 阅读 · 0 评论 -
抽象类、最终类和接口
抽象类:接口: 接口中的变量默认是:public static final 接口中的方法默认是:public static原创 2017-10-07 23:47:48 · 508 阅读 · 0 评论 -
Java修饰符:private、default、protected、public、static、abstact、final
信息隐藏是OOP最重要的原因之一,也是使用访问修饰符的原因。 信息隐藏的原因包括:对任何实现细节不需要关系防止用户非法访问数据和意外删除数据普通修饰符public:所有类private:当前类protected:表明成员变量或方法是该类本身、同一个包的其他类、其他包类的子类 都可见default:表明该成员变量或方法只有自己和同一包中的其子类可见补充:这些修饰符只可以用来修饰成员原创 2017-10-15 13:25:20 · 549 阅读 · 0 评论 -
Java 枚举
枚举(enum)类型是Java 5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示,是特殊的类,可以拥有成员变量和方法。枚举中的成员都被默认为final,static,public修饰,所以使用枚举成员的时候可以直接使用枚举类型名称调用枚举类型成员。使用枚举的优势类型安全紧凑有效的数据定义可以和程序其他部分完美交互运行效率高转发:枚举的...原创 2017-11-07 08:44:32 · 150 阅读 · 0 评论 -
instanceof
Java的三个平台: JavaSE(Java Standard Edition):用于桌面应用开发的Java平台; JavaEE(Java Enterprise Edition):用于可扩展的企业级应用开发的Java平台; JavaME(Java Micro Edition):用于嵌入式应用开发的Java平台。原创 2017-09-29 08:59:16 · 260 阅读 · 0 评论 -
Math类
1.静态变量和实例变量的区别?在语法定义上的区别:静态变量前要加static关键字,而实例变量则不用。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。而静态变量不属于某个实例对象,静态变量属于一个类,所以也静态变量也称作类变量。只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,这时静态变量就可以使用了。原创 2017-08-25 11:37:10 · 266 阅读 · 0 评论 -
线程安全
1.概念 如果代码所在的进程有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次的运行结果和单线程运行的结果一样的,而且其他的变量值和预期是一样的,那么此时就是线程安全的。线程安全问题都是由全局变量以及静态变量引起的;若每个线程同时对全局变量和静态变量进行写操作,一般都需要考虑线程同步。线程安全:HashtableVectorStringBuffer非线程安全:HashMap原创 2017-10-06 14:50:49 · 200 阅读 · 0 评论 -
String类常用方法使用 一
1.定义String类源码的定义:String类由final关键字定义可知:String类型不可以被继承。JDK文档类的结构 在Java语言中将字符串作为对象进行管理,因此可以像创建一样来创建字符串对象;1.1String类的构造方法2.String类中常用的方法2.1字符串的长度length():方法返回的字符串中的字符的个数package com.dong.test;public class原创 2017-09-30 19:41:59 · 274 阅读 · 0 评论 -
String常见问题
1.前提创建成功的字符的串对象,它的的长度是固定的,内容也是不能被改变和编译的。虽然使用“+”运算符可以达到附加新字符或字符串的目的,但是“+”会产生一个新的String实例,会在内存中创建新的字符串对象。如果重复地对字符串进行修改,将会极大的增加系统的开销。 这时候可以使用StringBuffer或者StringBuilderpackage com.dong.test;public class原创 2017-09-30 23:25:21 · 241 阅读 · 0 评论 -
String类常用方法使用三
2.6:字母大小写转换toLowerCase():将字符串中的所有的字符从大写字母转换为小写字母;toUpperCase(): 将字符串中的所有的字符从小写字母转换为大写字母;package com.dong.test;public class StringTest { public static void main(String[] args) { String s原创 2017-09-30 22:05:08 · 222 阅读 · 0 评论 -
异常和断言2
1.在方法中抛出异常若某个方法可能会发生异常,但是不想在当前的方法中处理这个异常,则可以使用 throws 、 throw 关键字在方法中抛出异常。1.1 throws关键字抛出异常throws 关键字通常被应用在声明方法时,用来指定方法可能会抛出的异常。多个异常可使用逗号分隔开。 注意:子类重写父类方法时不能回避比父类方法异常更大的异常使用throws回避异常的示意图 1.2 throw关原创 2017-09-30 14:49:09 · 261 阅读 · 0 评论 -
Java代码的执行顺序
首先,类加载的顺序是:父类的静态对象和静态代码块;子类的静态对象和静态代码块;父类非静态对象和非静态代码块;父类构造函数;子类的非静态对象和非静态代码块;子类的构造函数。原创 2017-10-04 10:34:56 · 1252 阅读 · 0 评论 -
Java:Collection接口
1.定义Java Collections框架包含了大量的集合接口以及这些接口的实现类的操作它们的算法(排序、查找、反转、替换、复制、取最小值、取最大值)2.Set集中的元素不能重复,Set中定义的每一个元素通过定义equals()方法来确保对象的唯一性。该接口有两个实现类:HashSet和TreeSet 2.1:TreeSet实现了SortSet接口;所以TreeSet中得元素是有序的。3.原创 2017-10-15 20:31:21 · 541 阅读 · 0 评论 -
Java中的关键字和保留字
java中的关键字全部都是小写的,所以NULL错误。 Java 关键字列表 所有的关键字都是小写,在MyEclipse中都会显示不同的颜色。原创 2017-11-07 08:56:27 · 4159 阅读 · 0 评论 -
嵌套类
等待原创 2017-11-09 08:54:18 · 186 阅读 · 0 评论 -
Java中的“==”和equals的区别
1. & 和 && 的区别相同点:& 和 && 都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为真(true)的时候,整个运算结果才为true,否则,只要有一方为false,则结果为false。不同点:&&还具有短路的功能,即如果第一个的表达式为false的时候,则不会再计算第二个表达式的值。 例如,对于if(str != null && !str.equals(“转载 2017-08-24 15:53:43 · 249 阅读 · 0 评论 -
Java 编译命令
1.javac.exe是编译功能javaCompiler2.java.exe是执行class,如果没有编译的话是不能执行的,同理,javac.exe编译完以后如果没有java.exe执行的话也是没有运行的原创 2017-11-07 08:52:11 · 2276 阅读 · 0 评论