![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java学习
文章平均质量分 80
MrPeng1991
这个作者很懒,什么都没留下…
展开
-
throws vs throw
【代码】throws vs throw。原创 2024-03-16 22:24:41 · 401 阅读 · 0 评论 -
1. java并发编程-线程定义、状态和属性
基本用法参考多线程1. 进程和线程线程 是指程序在执行过程中,能够执行程序代码的一个执行单元。在java语言中,线程有四种状态:运行 、就绪、挂起和结束。进程 是指一段正在执行的程序。而线程有时也被成为轻量级的进程,他是程序执行的最小单元,一个进程可以拥有多个线程,各个线程之间共享程序的内功空间(代码段、数据段和堆空间)及一些进程级的资源(例如打开的文件),但是各个线程都拥有自己的棧空间。为何使用多线程?从操作系统角度看主要一下几个方面:使用多线程可以减少程序的响应时间,如果某个操原创 2022-05-19 15:54:27 · 151 阅读 · 0 评论 -
java内存结构
jvm内存结构1 jvm结构详解1.2 堆 Heap1.2 方法区 Method Area1.3 程序计数器 Program Counter1.4 虚拟机栈 JVM Stacks2 Java8 内存变化2.1 永久代2.2 元空间 Metaspace2.3 永久代为什么被替换1 jvm结构详解1.2 堆 Heap特点堆内存最大堆线程共享堆的目的就是存放对象,几乎所有的对象实例都在此分配,当然随着优化技术更新,某些数据会放在栈上因为堆占用空间最大,堆也是java垃圾回收的主要区域,也称为G原创 2021-06-04 22:22:13 · 83 阅读 · 0 评论 -
java编译&运行
//MainApp.java public class MainApp { public static void main(String[] args) { Animal animal = new Animal("Puppy"); animal.printName(); } } //Animal.java public class Animal { public String name; public A原创 2021-06-04 21:52:34 · 155 阅读 · 0 评论 -
深入理解java反射机制
程序运行时接收到外部传入的一个对象,该对象的编译类型是Object,如需要调用该对象运行类型的方法,若编译和运行都知道,使用instantof判断后强转即可,若编译时无法预知该对象属于什么类,程序只能靠运行时发现对象的真实信息,这就必须使用反射了java程序中各个java类属于同一类事物,描述这类事物的类名就是Class,即字节码。 获取各个类的Class(字节码)有三种方式 1.类名.clas原创 2016-08-04 00:01:27 · 337 阅读 · 0 评论 -
泛型
概述jdk1.5之后的特性,类型安全机制。将运行期出现的问题,ClassCastException,转移到编译器,方便程序员解决问题,让运行期问题减少,更加安全简装。原创 2020-09-08 15:12:59 · 67 阅读 · 0 评论 -
java-多线程
一个进程至少有一线线程,jvm启动时候会有一个进程,java.exe,还有一个垃圾回收机制的线程。两种方式extends threadimplement Runnable线程的集中状态新建 new就绪 start运行 线程对象获得cpu资源冻结 因为某些原因 比如 wait sleep,释放了执行资格和执行权,死亡 run方法结束,或者stop,在内存中编程垃圾synchronized三个方法都需要在synchronized 语句中使用waitnotify原创 2020-07-27 19:16:11 · 164 阅读 · 0 评论 -
java基础
持续更新中原创 2020-07-23 16:41:00 · 105 阅读 · 0 评论 -
java集合类框架
collection顶层接口List列表,元素是有序的(角标带索引),可以有重复元素,可以有nullArrayList底层数据结构是数组数据结构,(数组就是在内存中连续的相同类型的变量空间)查询快(因为带角标),增删慢(增删一个元素,所有与角标元素都得改变),线程不同步,默认长度是10,超过长度时,按50%延长集合长度。当往ArrayList存入元素要求不重复时,可以根据需要重写元素equal方法LinkedList底层数据结构是链表数据结构,(链表详见https://blog.c原创 2020-07-01 01:14:02 · 136 阅读 · 0 评论 -
Android 各种版本号与权限
https://blog.csdn.net/gaolh89/article/details/79809034获取当前系统SDK版本 即手机系统版本 Build.VERSION.SDK_INTcompileSdkVersion代码中获取 compileSdkVersion ::1. compileSdkVersion 告诉 Gradle 用哪个 Android SDK 版本编译你的应用...原创 2019-01-22 01:30:53 · 2377 阅读 · 1 评论 -
回调&观察者模式
两者都是用了实现接口的方式,谈谈异同回调接口重点是理解,哪里定义方法,哪里调用方法,以及接口实现A向B提问,B思考一会儿,得到答案通知AA中1. 设置给B set 回调接口,2. 定义回调方法,3. 给B set问题,回调方法的参数中有问题答案4. 调用B 解决问题的方法B中:1. 定义思考过程,即解决问题的方法,在解决方法中调用回调方法。2. 定义一些set 方法回调...原创 2019-01-19 22:20:13 · 430 阅读 · 0 评论 -
删除
进程:一个正在执行的程序,每一个进程又有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元 线程:进程中一个独立的控制单元,线程控制进程执行。* 每一个线程都是个独立的执行路径* 线程创建方法: 方法一:new Thread(){ @Override public void run() { for(int i=原创 2017-04-21 14:53:16 · 625 阅读 · 0 评论 -
定义接口&监听回调
代码抽取是一个很好的变成习惯,一定要深刻理解。以一个监听器接口为例 1.抽取代码成方法 2.注释方法,申请监听监听器添加方法 3.监听器做参数传给工具 对象 4.听器内部获取参数 一定要养成 从底层到上层的习惯,而不是反之。 底层到上层一步步是怎么抽取的 从上层到底层:一步步是如何继 实现和复写的java编程一定要养成抽取的习惯http://blog.csdn.net/a782705原创 2016-08-02 13:01:24 · 2994 阅读 · 0 评论 -
Java引用
java四种引用包括 强引用、软引用、弱引用、虚引用强引用只要引用存在,就不会被回收 Object obj=new Object();只有obj这个引用被释放之后,对象才会被释放掉。软引用非必须引用,内存溢出之前进行回收, Object obj=new Object(); SoftReference sf=new SoftReference(obj); obj=null; sf.get()原创 2017-10-11 11:27:41 · 172 阅读 · 0 评论 -
泛型
JDK1.5后出现,好处, - 将运行时出现的ClassCastException转移到编译期 - 避免强制转换常见 - 集合框架内 new ArryList() - 泛型类 引用数据类型不确定时候,定义泛型来完成扩展class Demo<E>{ private E e; set get 方法}new Util<Person>();泛型类定义的泛型,在整个类中有效原创 2017-07-24 14:39:10 · 508 阅读 · 0 评论 -
深入学习单例模式
加载,表示启动程序的文件或信息的载入java中类的字节码文件加载进内存,就是内容以io流的形式存入内存。User user=new User(“男”,26); 该语句做了几件事:因为new用到了User.class,所以找到User.class文件并加载到内存中执行该类的static代码块,如果有的话,给User.class类进行初始化在堆内存中开辟空间,分配内存地址。在堆内原创 2017-12-01 18:13:30 · 11390 阅读 · 7 评论 -
Rsa加密的java实现
不多说,直接上代码public class SecurityUtils { /** * 解密 * @param cipherText 密文 * @return 返回解密后的字符串 * @throws Exception */ public static String decrypt(String cipherText) th原创 2018-01-29 10:18:38 · 923 阅读 · 0 评论 -
总结设计模式(一)——观察者模式
一、观察者模式定义对象对一多的依赖,一个对象改变时,他的所有依赖者都会受到通知并自动更新/** * Demo class * * 专题接口,所有主题必须实现此接口 * @date 2018/8/3 */public interface Subject { void registerOberber(Observer observer); void remove...原创 2018-08-03 16:52:47 · 251 阅读 · 0 评论 -
设计模式(二)——工厂模式
简单工厂模式:create()方法通常是静态的,也叫静态工厂,定义:通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。/** * 产品抽象类 * * @date 2018/8/14 */public abstract class INoodles { public abstract void desc();}//===========...原创 2018-08-23 17:41:26 · 192 阅读 · 0 评论 -
设计模式(三)——单例模式
三、单例模式四、策略模式五、 适配器模式六、命令模式七、 装饰者模式八、外观模式九、 模板方法模式十、 状态模式原创 2018-08-23 17:42:06 · 130 阅读 · 0 评论 -
java Exception
搞清原理很重要,基础的东西一定要扎实,给自己的一句话。throws 定义一个方法时候可以用throws关键字声明,表示此方法不处理异常,而交给方法调用处处理。public class MathDemo { public int div(int i,int j) throws Exception{//定义除法异常,如果有异常,则交给被调用处处理 int temp=i/j; /原创 2017-07-12 14:49:46 · 249 阅读 · 0 评论