
Java
文章平均质量分 73
记录一些刚学Java容易忘记的知识点
One_T.
IT小白
展开
-
多线程Thread
以后在开发中,我们的项目都是运行在服务器当中,而服务器已经将线程的定义,线程对象的创建,线程的启动等,都已经实现完了。线程t1和线程t2,在线程t1执行的时候,必须等待t2线程执行结束,或者说在t2线程执行的时候,必须等待t1线程执行结束,两个线程之间发生了等待关系,这就是同步编程模型。线程t1和线程t2,各自执行各自的,t1不管t2, t2不管t1,谁也不需要等谁,这种编程模型叫做:异步编程模型。出现在实例方法上,表示整个方法体都需要同步,可能会无故扩大同步的范围,导致程序的执行效率降低。...原创 2022-08-27 22:04:57 · 237 阅读 · 0 评论 -
mySQL
比如说:A连接在数据库新增了一条记录,B连接说明都没做,只是在A连接新增记录前后查询了一次数据库,因此B连接两次查询的结果应该都是一样的,不应该受到A连接的影响。有的时候可能会存在冗余,但是为了减少表的连接次数,这样做也是合理的,并且对于开发人员来说,sql语句的编写难度也会降低。前面我们学习的查询,是利用where子句对两张表或者多张表,形成的笛卡尔积进行筛选,根据关联条件,显示所有匹配的记录,匹配不上的,不 显示。如果某列的值,是不会重复的,则优先考虑使用unique索引, 否则使用普通索引。...原创 2022-08-27 15:35:01 · 850 阅读 · 0 评论 -
java中的重要IO流
java中的四大顶级IO流原创 2022-08-27 11:36:27 · 940 阅读 · 0 评论 -
集合Collection
如果object的类型重写了equals方法,则按照重写后的逻辑来定义是否包含该object,如果没重写equals方法则默认会调用Object类的equals方法:根据对象的内存地址来决定是否已经存在某个对象。底层同样也调用了equals方法,所以当要删除某个对象时,如果该对象的类型重写了equals方法,则跟会根据重写后的逻辑将所有和要被删除对象相等的对象一同删除。contains中传入的是String类型的对象,String是重写过equals方法的,是以内容来判断是否相等。...原创 2022-08-26 15:14:21 · 183 阅读 · 0 评论 -
反射Reflection
我自己之前学习过深度学习相关内容,使用mmdetection时就感受到了这种感觉,就是一整个模型架构只需要修改配置文件的内容就可以瞬间搭建不同的模型、调整不同的训练策略等。java的反射应该和这个类似。.........原创 2022-08-23 22:26:35 · 256 阅读 · 0 评论 -
JDBC数据库连接
JDBC为访问不同的数据库提供了统一 的接 口,为使用者屏蔽了细节问题。即使用户提供的信息中含有 sqI 语句的关键字,但是没有参与编译,不起作用。JDBC 默认自动提交事务,并且是执行一条 sql 语句就自动提交,和我们的期望不符。的原理是:预先对 sql 语句的框架进行编译,然后再给 sql 语句传"值”。那么查询到的记录就会被锁住,在当前事务未提交前,这些记录是不可以被修改的。只要用户提供的信息不参与 sql 语句的编译过程,问题就解决了。根本原因是用户输入的可能包含sql语法关键字的数据参与了。..原创 2022-08-23 22:24:02 · 565 阅读 · 0 评论 -
java四种内部类详解
内部类定义在外部类局部位置上局部内部类匿名内部类定义在外部类成员位置上成员内部类静态内部类定义在外部类的局部位置上,比如方法体内,代码块内局部内部类是定义在外部类的局部位置,可以在方法中和代码块中,局部内部类有类名可以直接访问外部类的所有成员不能添加访问修饰符,局部内部类的地位就相当于局部变量但是可以用 修饰,如果加上 ,就不可以被继承作用域:仅在定义它的代码块或方法中。在外部类的其他方法中可以直接这个内部类如果外部类和局部内部类的成员重名时,默认遵循就近原则,如果想访问外部类的成员,则可原创 2022-07-03 15:23:29 · 245 阅读 · 0 评论 -
接口interface
文章目录一、介绍二、使用规则三、模板设计模式一、介绍声明类为抽象类:访问修饰符 abstract 类名{}声明方法为抽象方法: 访问修饰符 abstract 返回类型 方法名 (参数列表); //没有方法体二、使用规则抽象类不能被实例化,不能通过new创建抽象类的实例化对象抽象类可以不包含抽象方法,也就是说抽象类可以没有abstract方法abstract class Animal{ private String name; public Animal(Stri原创 2022-03-10 17:23:48 · 396 阅读 · 0 评论 -
抽象类和模板设计模式
文章目录抽象类引入一、语法二、使用规则三、模板设计模式抽象类引入一个Anima类,里面有一个eat方法,但是每一种动物的eat都不太一样,比如:猫吃鱼,牛吃草。。。 所以在Animal类中,eat方法并不好实现,得具体看看是哪一种动物。我们知道Animal肯定都有eat这个功能,但是又不能在不知道是什么动物的前提下去实现这个方法,这个时候就可以把该方法声明为抽象方法,只需声明这个方法而不用具体实现,如果一个类中只要有一个抽象方法,那么这个类也必须声明为抽象类。一、语法声明类为抽象类:访问修饰符原创 2022-03-02 10:03:36 · 376 阅读 · 0 评论 -
单例设计模式
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录什么是单例模式一、饿汉式1.1步骤:1.2 注意二、懒汉式2.1 步骤2.2注意什么是单例模式所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象化实例,并且该类只提供一个取得其对象实例的方法。单例设计模式分为两类:饿汉式和懒汉式一、饿汉式1.1步骤:构造器私有化创建对象的过程在类的内部实现向外暴露一个公共的静态方法 getInstance代码实现class S原创 2022-02-07 22:06:59 · 92 阅读 · 0 评论 -
代码块内容梳理
基本介绍代码块又称为初始化块,属于类中的成员,类似于方法,讲代码语句封装在方法体内,通过**{}**包围起来。但和类中方法有不同,代码块没有方法名,没有参数列表,没有返回值,只有方法体,而且不用通过对象或类显式调用,而是加载类时,实例化对象时隐式调用。 基本语法修饰符 { 代码语句};//修饰符要么不填 要么只能填static 分号可加可不加//加上static就是静态代码块,不加的时候就是普通代码块 细节静态代码块静态代码块只能调用静态属性或静态方法静态代码块,随着类原创 2022-02-03 15:43:47 · 558 阅读 · 0 评论 -
==和 equals 的区别
==的含义既可以判断基本数据类型,也可以判断引用数据类型当判断的是基本数据类型时,是判断值是否相等当判断的是引用数据类型时,是判断对象的地址是否相同eg: B b1=new B(); B b2 = b1; B b3=b2; System.out.println(b3==b1);定义一个A类的子类B类A a1=b1;System.out.println(a1==b3);即使是一个父类的引用指向子类equals的含义原创 2021-11-18 19:46:24 · 357 阅读 · 0 评论 -
java动态绑定机制
当调用对象方法的时候,该方法会和该对象的运行类型绑定当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用代码分析情况1定义一个父类A:public class A { public int i=10; public int getI() { return i; } public int sum(){ return getI()+10; } public int sum1(){ return .原创 2021-11-17 16:32:39 · 260 阅读 · 0 评论 -
java对象的多态及classcast
规则一个对象的编译类型和运行类型可以不一致、编译类型在定义对象时就确定了,不能改变运行类型是可以变化的编译类型看定义时 = 的左边,运行类型看 = 的右边Animal animal = new Cat(); animal的编译类型是Animal,运行类型是Cat。代码分析多态的初步了解定义一个父类Animal类public class Animal { protected void call(){ System.out.println("动物叫唤原创 2021-11-16 15:36:40 · 426 阅读 · 0 评论 -
继承与重写
访问修饰符公开级别:public 对外公开受保护级别: protected 对子类和同一个包中的类公开默认级别:没有修饰符 向同一个包中的类公开私有级别:private 只有类本身可以访问 不对外公开注意访问修饰符可以修饰类中的成员变量,成员方法以及类修饰类的时候 只能用public或者默认继承子类继承了父类所有的属性和方法,但是私有属性不能在子类中直接访问,要通过公共的方法去访问。......原创 2021-11-15 17:39:39 · 157 阅读 · 0 评论 -
包 Package
包的本质就是创建不同的文件夹来保存类文件com包下有两个包,分别为LL和YMY,并且都有一个同名的Dog类,在主函数中如何区别这两个类?一个import语句,若没有特殊说明就是默认该包下的Dog类;若想创建YMY包下的Dog类就必须加上包前缀加以区分不允许引入两个相同的类名,因为在主函数中Dog d=new Dog(); 无法区分是哪一个Dog类常用的包java.lang 默认引入 不用单独引入java.util 系统提供的工具包,使用Scannerjava.net 网络包 用于网络原创 2021-11-11 14:44:50 · 455 阅读 · 0 评论 -
方法重载,可变参数,作用域,构造器,this
行这条语句发生了什么?访问修饰符 返回类型 方法名(数据类型…这三个方法可以等价为一个方法,利用可变参数的方法。也可以不带参数,最少接收的参数个数为0。nums就相当于一个长度可变的数组。java允许将同一个类中。的方法封装成一个方法。原创 2021-11-10 22:06:29 · 133 阅读 · 0 评论 -
类及对象相关概念
对象在JVM中的存在形式因为String又是一个引用类型,所以在堆里面存放的仍然是地址,而age是基本数据类型,所以可以直接将数据存放在堆里面。对象生成过程首先把Person类的属性信息 和方法信息 加载到方法区内存区域中 类信息只加载一次,如果在创建相同类的对象 不用再加载类信息在堆中执行 new Person()操作,但是此时所有成员变量均为默认值在栈中开辟存储单元存储p1这个变量,p1里面存储的就是堆里面这个实例化对象的首地址将p1的值赋给p2就是让p2中的值也为该实例化对象的地址原创 2021-11-06 21:23:46 · 74 阅读 · 0 评论 -
数组的一些细节问题
数组赋值是引用赋值 int[] arr1={1,2,3}; int[] arr2=arr1; arr2[1]=20; System.out.println(arr1[1]);原创 2021-10-30 16:22:12 · 111 阅读 · 0 评论 -
Switch-case结构小细节
程序控制switch-casechar c=scanner.next().charAt(0); //获取输入字符串的第一个字符switch (c){ case 'a': System.out.println("今天周一"); break; case 'b': System.out.println("今天周二"); break; case 'c': System.out.println("今天周三原创 2021-10-29 20:46:57 · 195 阅读 · 0 评论 -
JRE JVM JDK之间的关系以及常用DOS命令
跨平台性1.有了JVM 同一个java文件才能在不同的操作系统上执行 2.对于不同的操作系统 需要安装不同的JVMJRE JVM JDK的关系JDK= JRE + java开发工具JRE= JVM + 核心类库常用的DOS命令(Disk Operating System)查看当前目录有什么内容 eg:dir d:\abc切换到其他盘下 eg:切换到E盘: cd/D e:进入下一级目录 eg: cd d:\abc\test返回到上一级目录 cd…切换到当前盘的原创 2021-10-28 19:00:09 · 146 阅读 · 0 评论 -
接口内容小结
接口interface1.接口定义格式常量默认方法私有方法静态方法2.继承父类并实现多个接口3.接口之间的多继承1.接口定义格式public interface 接口名称{接口内容}1.1接口内容可以包括:常量,抽象方法,默认方法,私有方法,静态方法。1.2接口没有静态代码块和构造方法。1.3接口不能直接使用,必须有一个实现类implements 接口。1.4接口的实现类必须覆盖重...原创 2019-11-29 11:11:08 · 411 阅读 · 0 评论