Java
From_Nowon
这个作者很懒,什么都没留下…
展开
-
java通过Runtime.getRuntime().exec调用python脚本解决bug总结
前提环境: 操作系统:MAC OS Python脚本:OpenCV中最简单的图像缩放程序 java运行环境:Springboot+IDEA+jdk1.8 话不多说,直接上执行成功代码 //测试代码 import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.test.context.SpringBootTest; impo原创 2021-03-08 11:14:05 · 1724 阅读 · 1 评论 -
注解和反射
转载地址:https://blog.csdn.net/weixin_43751396/article/details/106315011 注解 和注释一样,注解不是程序本身,而是对程序作出解释,而注解与注释不同的点在于,注解可以被其他程序比如编译器读取 @Override:只适用于修饰方法,表示一个方法声明重写超类中的另一个方法声明 @Deprecated:可以用于修辞方法,属性,类,表示不鼓励程序员使用这样的元素,通常是因为它很危险或者存在更好的选择. @SuppressWarnings:用来抑制编译时的原创 2020-11-20 20:52:49 · 168 阅读 · 0 评论 -
多线程
线程就是独立的执行路径; 在线程运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc线程; main()称之为主线程,为系统的入口,用于执行整个程序; 在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序是不能人为的干预的。 对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制; 线程会带来额外的开销,如cpu调度时间,并发控制开销。 每个线程在自己的工作内存交互,内存控制不当会造成数据不一致 实现多线程代码(继承thread类) pac.原创 2020-11-16 20:55:25 · 91 阅读 · 0 评论 -
异常Exception
异常 定义:异常指程序运行中出现的不期而至的各种状况 异常发生在程序运行期间,影响了正常的程序执行流程 Throwable是超类 分类: 检查性异常:用户错误或问题引起的异常 运行时异常 错误ERROR:脱离程序员控制的问题 Error 由Java虚拟机生成并抛出,大多数错误与代码编写者执行的操作无关 Exception 由程序逻辑错误引起的 Error与Exception的区别: Error通常是灾难性的致命错误,程序无法控制和处理,一旦出现,JVM一般会选择终止线程Exception通常情况下可以被程序原创 2020-10-22 21:26:28 · 163 阅读 · 0 评论 -
内部类
定义:在一个类的内部再定义一个类 比如A类中定义一个B类,那么B类相对A类来说就成为内部类,而A类相对B类就是外部类 一个Java文件中只能有一个public class,但可以有多个class 分类: 成员内部类 静态内部类 局部内部类 匿名内部类 成员内部类 通过外部类来实例化内部类 Outer.Inner inner = new outer.new Inner(); 内部类可以获取外部类的私有属性和私有方法 静态内部类 内部类定义时加上static 局部内部类 方法里面定义的类 匿名内部类 没有名原创 2020-10-22 20:31:32 · 69 阅读 · 0 评论 -
接口
普通类:只有具体实现 抽象类:具体实现和规范(抽象方法)都有 接口:只有规范,自己无法写方法(专业的约束!约束和实现分离:面向接口编程) 定义: 接口就是规范,定义的是一组规则 接口的本质是契约 面向对象的精髓,是对对象的抽象,最能体现这一点的就是接口 关键字:interface 接口中的所有定义其实都是抽象的public abstract 实现类命名规范:接口名+Impl 关键字:implements 实现了接口的类,就需要重写接口中的方法 区别于abstract的extends单继承,imple原创 2020-10-22 19:47:08 · 229 阅读 · 0 评论 -
抽象类
关键字:abstract abstract可以用来修饰方法也可以修饰类。若修饰方法,则该方法就是抽象方法。若修饰类,则该方法就是抽象类 抽象方法只有方法名字,没有方法的实现!只是作为一个约束而已 特点: 抽象类不能使用new关键字来创建对象,它是用来让子类继承的约束 抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的 抽象类里可以写普通方法 但有抽象方法的类一定要声明为抽象类 抽象的抽象:约束1 子类继承抽象类,那么就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类 继承了抽象原创 2020-10-22 19:25:51 · 52 阅读 · 0 评论 -
static+final关键字详解
static 被static修饰的方法或代码块只加载一次,之后便会一直存在于内存中 静态导入包: import static java.lang.Math.random 接下来就可以直接使用random函数,不用写Math.前缀 final 被final修饰的类不能被继承 ...原创 2020-10-22 18:52:21 · 102 阅读 · 0 评论 -
Java三大特性
封装 禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问 具体表现: 属性私有(private) get/set(提供一些可以操作这些属性的public方法) 意义: 1.提高程序的安全性,保护数据 2.隐藏代码的实现细节 3.统一接口 4.系统可维护性增加 ...原创 2020-10-21 21:46:35 · 174 阅读 · 0 评论 -
类与对象
类与对象的关系 类:一种抽象的数据类型,是对某一类事物整体描述,但不能代表某一个具体事物 对象:抽象概念的具体实例 类里面只有属性和方法 使用new关键字创建对象,创建时除了分配内存空间外,还会给创建好的对象进行默认的初始化以及对类中构造器进行调用 在内存中: 堆: 存放new的数组和对象。栈: 存放基本变量类型和引用变量以及方法 构造器 类中对构造器也叫构造方法,是进行创建对象时必须进行调用的 特点: 必须和类的名字相同 必须没有返回类型,也不能写void 作用: 1.使用new关键字,本质是在调用原创 2020-10-21 21:33:11 · 118 阅读 · 0 评论 -
方法
方法 静态方法:用static修饰,可在另一个类中直接通过类.方法名调用,和类一起加载的 非静态方法:没有用static修饰,类实例化之后才存在 因此在静态方法中不能直接调用非静态方法 如何调用非静态方法? 实例化这个类:对象类型 对象名=new 对象值 例如:Student student=new student(); student.方法名 为什么不直接都用static修饰成静态方法? static后续会减少使用,为了更好的封装,避免直接被外部调用 ...原创 2020-10-21 20:36:17 · 80 阅读 · 0 评论 -
面向对象
面向对象 面向对象&&面向过程: 面向过程:步骤清晰简单,第一步、第二步、第三步。。适合处理简单的问题 面向对象:物以类聚,分类思维,再对某个分类下面对细节进行面向对象对思考。适合处理复杂和多人协作的问题 面向对象的本质:以类的方式组织代码,以对象的形式封装数据 描述复杂的事物,从宏观上采用面向对象思路,具体到微观操作,需要面向过程的思路去处理 ...原创 2020-10-21 20:21:49 · 64 阅读 · 0 评论 -
稀疏数组
稀疏数组 定义:当一个数组中大部分元素是0,或者为同一值的数组时,可以用稀疏数组保存该数组 处理方式: 记录数组一共有几行几列,有多少不同值 把不同值的元素和行列及值记录在一个小规模数组中,从而缩小程序的规模 举例: ...原创 2020-10-20 20:39:22 · 59 阅读 · 0 评论 -
重载重写+可变参数
方法重载 定义:在一个类中有相同的函数名称,但形参不同的函数 规则: 名称必须相同 参数列表必须不同(参数类型或个数或顺序不同) 返回值类型可同可不同 仅仅返回值类型不同不足以构成重载 注意:看形参不看返回值类型,返回值类型不同不能作为构成重载的标志 可变参数 定义:在一个方法声明中,在指定参数类型后加一个省略号(…) 规则:一个方法中只能指定一个可变参数,且必须是方法的最后一个参数,任何普通参数都必须在它之前声明 举例: public void test(int... i){ System.o原创 2020-10-20 20:12:37 · 431 阅读 · 0 评论