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