java学习笔记
文章平均质量分 64
夜飞霜
这个作者很懒,什么都没留下…
展开
-
JAVA基础
深拷贝 设计模式 Hashtable和HashMap的区别 String,Stringbuffer,StringBuilder java8特性 重写equals方法还需重新hashcode方法原创 2021-08-27 15:21:44 · 156 阅读 · 0 评论 -
数据库学习
数据库三大范式 确保每列原子性,所有字段值都是不可分解的原子值 每行数据都能区分,选择合适的主键 每一个表不能包含其他表的分主键信息 MySQL基本机构: Server层 链接器:身份认证 查询缓存:执行查询语句的时候,会先查缓存(MySQL 8.0 版本后移除,表的更新会使缓存清空,且有更好的,例如redis) 分析器:对SQL语句进行分析,分析语句的方式,查询的表和字段,查询条件等,检查SQL语句是否正确 优化器:按照MYSQL认为最优的方案执行(例如多个索引,多原创 2021-08-09 20:55:14 · 210 阅读 · 0 评论 -
多线程多进程
基本概念: 进程:执行程序的一次执行过程,是系统进行资源分配和调度的基本单位,其中,程序是指令和数据的有序集合 线程:CPU调度和执行的单元,最小的处理单元 进程和线程之间的关系: 一个进程可以有多个线程 资源分配给进程,同一进程的所有线程共享进程的所有资源 CPU运行的是线程 并发和并行: 并行:同一时刻,多个任务同时执行 并发:执行多个任务,能顺利的来回切换。并发包含并行 多核CPU能够支持多线程并行执行,单核CPU只能支持多线程的并发执行原创 2021-08-04 17:34:50 · 204 阅读 · 0 评论 -
JVM学习
JVM类加载过程 加载>>链接>>初始化 何时需要进行类加载: new 一个对象的时候 调用对象静态变量或者静态方法 反射调用类 初始话子类的时候,若父类没有被初始化,则也会执行父类的初始化 程序启动时,main方法所在类 加载过程: 通过类的全限定名(所在包名 + 类名)来获得此类的二进制字节码流 将这些静态数据转换为方法区中的运行时数据 在方法区中生这个类对应的java.lang.Class对象,作为调用此类各种信息的.原创 2021-07-30 15:17:19 · 88 阅读 · 0 评论 -
各种常见的排序算法
冒泡排序: 对数组进行操作,第一次第一个元素到倒数第二个元素进行遍历,每次将当前元素与后一个元素进行比较,如果结果不符合排序规则,则将两个元素交换位置。第一次遍历以后,最大(小)元素交换到了最后,下一次,从第一个元素到倒数第三个元素进行遍历。 时间复杂度:O(n^2) 空间复杂度:O(1) 是否稳定:是 插入排序: 基本思想就是将一个元素,插入已经排过序的数组中。例如在进行第i此遍历时,数组前i-1个元素已经有序,此时将第i个元素插入有序数组中的对应位置,其他元素依次向后移动 时间原创 2021-07-29 11:41:43 · 110 阅读 · 0 评论 -
修饰符
修饰符中有可见性修饰符和限定修饰符;1、可见性修饰符(public 公共修饰符),能使包内,类内的数据被其他包访问2、限定修饰符(eg:package),使包内,类内的数据只能在本包、本类中被访问,而不能引用于其他原创 2016-03-09 21:52:41 · 334 阅读 · 0 评论 -
final修饰符
final可用于修饰类,变量和方法,用final修饰的类,变量,方法不可改变。final修饰的成员变量不能做第二次赋值,final修饰的成员变量必须有明确的初值,若没有初值程序将编译错误,可以直接在声明该变量的地方赋初值,也可以在(静态)初始化块中赋初值,还可以在构造器中指定初值(类变量不行);final修饰的局部变量可以在后面的代码中赋初值,但也只能赋值一次,而且不能对final修饰的形参赋原创 2016-05-18 20:32:33 · 309 阅读 · 0 评论 -
栈内存和堆内存
在java中,内存实际分为栈内存和堆内存,当我们定义一个类的引用变量时,这个引用变量就放在栈了内存中,而这个引用变量的对象就放在堆内存中。eg:int[] a = {1, 2, 3, 4};当我们定义一个数组引用变量a时,字符a就会储存在栈内存中,而实际的对象1, 2, 3, 4就是催存在堆内存中,栈内存中a是指向对内存的1, 2, 3, 4的。所以如果使一个与a相同类的数组引用变量b等于a,原创 2016-05-08 19:52:58 · 403 阅读 · 0 评论 -
对象数组
数组是变量的集合,一个数组可以储存多个数值,而对象数组则是多个对象的集合,数组中每个元素都对应了一个对象的引用;对象像一把打开方法的钥匙,而对象数组就像打开这个方法的一串钥匙,钥匙的功能是完全相同的,只是装饰的外貌不同而已。而在使用对象数组是要注意在使用时要初始化每个数组,不然程序显示不了错误,但也是不能运行的;eg:package newpackage1;public原创 2016-03-10 21:50:32 · 430 阅读 · 0 评论 -
方法与对象参数
在java中可以向方法传递对象参数,而这种传递实际上是传递对象的引用;对象就像一种打开方法(房间)的钥匙,而方法传递的对象参数就像这把钥匙的备用,所以对象能做到的,对象2(方法中引用的对象)也能做到;而对象2对原方法的改变,对象也会有着相应的改变;egpackage newpackage1;public class Object2 { int radius =原创 2016-03-10 20:01:13 · 373 阅读 · 0 评论 -
接口的学习笔记
接口是java中唯一的多对一的特殊继承关系,接口可以看成只包含常量和抽象方法的特殊类。接口中的抽象方法是可以不用修饰符abstract修饰的,但接口中的抽象方法一定要是公共类的(例;用public修饰符和默认修饰符修饰的),且不能是静态方法,但可以是静态实例,变量前可以不用加修饰符,但若要加修饰符,则只能加public,static,final中的一种。接口和抽象类是一样的,都不能使用new操原创 2016-04-08 21:25:05 · 221 阅读 · 0 评论 -
静态和实例
在java中有种静态修饰符static,static只能修饰变量和方法,不能修饰类。有static修饰的变量和方法是通常叫做静态变量和静态方法,而没有被修饰的变量和方法通常叫做非静态变量和非静态方法或实例变量和实例方法。我们常用的main方法就是静态的,在静态方法中是不可以使用实例变量和实例方法的,只能使用静态变量和方法,而在实例方法中即可以使用静态变量和静态方法,也可以使用实例变量和方法。要原创 2016-03-07 21:06:37 · 474 阅读 · 0 评论 -
内部类
定义在其它类内部的类叫内部类,在方法中可以定义内部类,在接口中也可以定义内部类(此时么默认被public static修饰)。因为内部类算是外部类的成员之一(局部内部类和匿名内部类除外),所以内部类比外部类多三个修饰符:private,protected,static;定义内部类的语法格式为:public Class inclass{}在非静态内部类中可以字节访问外部类的private成员,但原创 2016-05-20 21:15:57 · 257 阅读 · 0 评论 -
匿名内部类
匿名内部类是一种只需要使用一次的类,创建你匿名内部类会立即创建一个该类的实例,这个类的定义立即消失,匿名内部类不能重复使用。匿名内部类不用Class,他在定义时直接生成了他的对象,因为匿名内部类没有类名,所以匿名内部类不会有够构造器,因为匿名内部类是一次性的,所以匿名内部类也不能是抽象类。匿名内部类的语法格式如下:new 实现接口()| 父类构造器(实参列表){......}原创 2016-05-22 20:53:58 · 526 阅读 · 0 评论 -
finally的学习笔记
无论异常是否发生,finally子句都将执行。try-catch-finally是规定了顺序的,顺序错误就会显示编译错误而finally的用处就是即使异常没被捕获,程序终止,也能执行,eg:public class FINALLY { public static void main(String[] args){ Scanner Input = new Scan原创 2016-04-04 20:47:30 · 372 阅读 · 2 评论 -
使用javaFX编辑的学生管理系统
javaFX编辑的学生管理系统(初学)自定义的学生类:public class Student { private String Name; private String Number; private String Class; private int Score; public Student(){ this(原创 2016-04-27 21:40:19 · 18171 阅读 · 9 评论 -
初始化块
在一个类中没有名字,没有标识表示的语句块叫初始化块,而用static修饰的初始化块叫静态初始化块,他门的基本形式如下:public class A {static{//静态初始化块......}{//初始化块......}}一个类中能有多个初始化块,而先定义的(静态)初始化块先执行,后定义的(静态)初始化块后执行,静态初始化块总是比初始化块先执行,而原创 2016-05-15 21:12:37 · 299 阅读 · 0 评论 -
ArrayList类
ArrayList对象可以用于存储一个对象列表;在创建ArrayList对象时要指定一个泛型,来表示列表中对象的数据类型;eg:ArrayList a = new ArrayList();规定a列表中的数据全是在String类的对象ArrayList a = new ArrayList();规定b列表中的数据全是Integer类的对象ArrayList类中提供了一些对列表中数据操作原创 2016-03-31 19:20:39 · 436 阅读 · 0 评论 -
StringBuilder和StringBuffer类
String类,StringBuilder和StringBuffer类都是对字符串进行处理,但String类有一些局限性,因为String对象是不可变的,所以字符串的值一旦确定,就不可改变,但其他两类则可以改变,故其他两类叫灵活。Stringbuilder和StringBuffer类在很多情况下是可以互换的,但在多任务同时访问时,则选择创建Stringbuffer比较好,单任务时选择StringB原创 2016-03-27 21:20:22 · 336 阅读 · 0 评论 -
java中String类的几种常用方法
java中String类的几种常用方法:1、String.charAt(int number):得到字符串中第number -1个字符String s = new String("abcdabcd");System.out.println(s.charAt(1));结果为:b2、比较(1)String.compareTo(String newString):原创 2016-03-25 20:19:05 · 434 阅读 · 0 评论 -
将基本数据类型值作为对象处理
在java中,将基本类型数据包装成对象(将int 类型包装成Integer,将double包装成Double,将char包装成Character。。。。。);通过这些包装类可以将基本数据在作为对象处理;而这些类都被打包在java.lang包里。每个基本数据类型包里面都是没有无参构造方法(既没有 public void f (){....}方法),而每个包都提供了一些原创 2016-03-25 19:10:36 · 1392 阅读 · 0 评论 -
类的关系
类之间的关系通常有依赖,关联,聚合,组合以及继承等类之间的依赖关系是指;A类方法的实现要依赖B类,当B类发生改变时,A类中引用B类做参数的方法也将发生改变,但这种改变是细微的,局部的;class A{......void f(B b){}.......}class B{.......}类的关联关系是指:A类和B类有一定关系,A类的数据域中原创 2016-03-24 20:47:27 · 336 阅读 · 0 评论 -
类的抽象和封装
在程序面向对象设计时,常常要用到类抽象与类的封装;类的抽象是指将类分为两部分,一部分是类的实现,一部分是类的使用;用户只用知道如何使用这个类,而不需要知道这个类是如何实现的,程序把实现的过程封闭起来就叫做类的封装。例如我们现在都在使用一些特定的类,比如String,Scanner,Point2D等等,我们只需要知道这些类中的方法是如何用的,而不会刻意的去探究这个方法是如何实现的。eg;im原创 2016-03-24 20:06:35 · 2592 阅读 · 0 评论 -
简单的java学生管理系统
java简单的学生管理系统(无界面)package Students;public class Students { private String Name; private long Number; private String Class; private int Score;//不将数据域定义为私有的,定义为共有的,将使编写代码变得简单一些,可以省去很原创 2016-03-23 21:47:05 · 9436 阅读 · 1 评论 -
不可变对象和类,变量的作用域
可变对象和不可变对象1、可变对象是一种创建后能修改的对象,他能直接或间接的引用数据域,能为类中的变量赋予新的值2、不可变对象是一种创建后内容就不能改变的对象,例如String类就是一种不可变对象;如果一个类的所有数据域都是是私有的,也没有修改起方法,但他有指向引用可变域方法的访问器方法时,他就不是一个不可变对象;而要设置一个不可变对象,首先要把数据域设置为私有的,其次是不能设置修改原创 2016-03-11 19:42:05 · 521 阅读 · 0 评论 -
抽象类
一个父类设计的非常抽象,而没有任何的实例,那这个类就叫做抽象类,抽象类由修饰符abstract修饰。抽象类是没有实例的,所以抽象是不能用new操作符的,但抽象类可以当成一种数据类型,eg:若父类A是抽象类,其子类是类B,则A a = new A();是不合法的。A[] a = new A[10];a[0] = new B();是合法的。若一个类中包含抽象方法,那这个原创 2016-04-07 20:29:24 · 349 阅读 · 0 评论 -
javaFX的一些简单类
1、Scene:创建场景2、Stage:创建舞台3、Pane:面板的基类,用getChildren()来返回面板中的节点列表4、stackPane:面板,节点放置在面板中央5、FlowPane:节点以一行一行,或一列一列放置6、GridPane:节点放置在一个二维网络的单元格中7、BorderPane:节点放置在四周及中央8、HBox:节点放置在单行中原创 2016-04-27 20:34:32 · 11301 阅读 · 0 评论 -
java异常处理的学习笔记
程序在执行时,如果异常没有处理,程序就会被迫终止,异常出来能使程序可以处理预期之外的结果,是程序能顺利运行。异常可大致分为三种:系统错误、异常、运行时异常系统错误用Error类表示,Error描述的是内部系统错误,而这种错误一般很少发生,但一旦发生,除了通知用户以及尽量委托的关闭程序外,基本没什么能做的;异常用Exception类表示,Exception描述的是有程序和外部环境所引起的原创 2016-04-01 20:33:22 · 388 阅读 · 0 评论 -
继承的学习笔记
java中从已经存在的类中定义新的类叫继承。继承使我们能定义一个类(父类),然后定义一该类的拓展类(子类),使类的内容更加完善。父类的私有数据域在子类中是不能访问的,除非父类中定义了访问器或修改器的方法。一些程序设计语言允许多个父类派生一个子类,但在java中是不行的,在java中能实现多继承关系的是借口。通过继承关系我们还能构造方法链,子类在完成自己任务之前,首先引用它父类的构造方法,而父类原创 2016-03-28 19:21:30 · 354 阅读 · 0 评论 -
多态
多态指不同类的对象对同一指令做出反应,而具体执行那个语句应根据实际情况定;eg Object o = new GeometricObject();//GeometricObject是Object的子类System.out.println(o.toString())o的声明类型(一个变量必须被声明为某种类型,eg int等基本对象的类型;变量的这个类型称为他的声明类型)是object,o原创 2016-03-30 19:40:48 · 261 阅读 · 0 评论 -
对象转换
对象的引用可以类型转换为对另一种对象的引用,称为对象转换;eg:若A类是Object的子类Object o1 = new A();//向上转换,将子类的实例装为父类的变量A o2 = (A)o1;//向下转换,将父类的实例转换为子类的变量Object o3 = new Object();A o4 = (A)o3;是错误的,运行时将出现异常在执行类型装换前,应先确定该对象是原创 2016-03-30 21:14:26 · 458 阅读 · 0 评论