javaSE
javaSE
:十点差三分
这个作者很懒,什么都没留下…
展开
-
堆
Java中的堆是JVM管理的最大的一块内存空间,主要用于存放Java类的实例对象,其被分为两个不同的区域:新生代和老年代,其中新生代又被划分为Eden、From Survivor 和 To Survivor三个区域:JDK8开始,Metaspace(原空间)替代了永久代,如下图所示:无论哪个版本的JDK,其堆内存的划分都没有变化,下面详述Java堆中各个区域:1、堆大小 = 新生代 + ...原创 2019-08-19 17:59:46 · 110 阅读 · 0 评论 -
学生管理系统->DBUtil实战
用上篇博客的DBUtil工具类写的学生管理系统,可实现数据的增删改查以及账户的登陆注册package jdbc;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Scanner;import com.jd.util.DBUtil;import com.jd.util.IRowMapper;...原创 2019-08-16 19:43:08 · 183 阅读 · 0 评论 -
位运算方法以及逻辑运算符与位运算符区别
先放规则上例子!计算7&-5的结果第一步:byte中的二进制#7的二进制被除数 除数 商 余数7 2 3 13 2 1 11 2 0 17的补码 0000 0111(也可以想 7=4+2+1,对应111)#-5的二进制被除数 除数 ...原创 2019-07-25 19:04:05 · 640 阅读 · 0 评论 -
java流程控制break return continue
break适用:switch或Loop作用:跳出当层switch或循环return结束当前方法方法内return之后的代码不会执行continue只用于循环结束当次循环并进入下次循环当次循环continue后面的代码不会执行...原创 2019-07-26 17:12:29 · 101 阅读 · 0 评论 -
抽象类与接口
接口:一个抽象类中都是抽象方法,则可以将该抽象类定义成接口abstract class->interfaceextends->implements实现类:一个实现了接口中抽象方法的类,因为Whale类实现了接口中抽象方法,所以Whale类即是实现类1.如果一个类没有实现接口中的所有抽象方法,则该类必须为抽象类:2.接口中没有默认的构造方法,也不能定义构造方法3、接...原创 2019-08-02 17:07:08 · 373 阅读 · 0 评论 -
StringBuffer
public class StringBuffer {public static void main(String[] args) { String name1 = "Tom";//堆里的常量池中创建的对象 String name2 = "T" + "om";//+字符串连接符,先连接为"Tom" 内存中有一个String类型对象 String name3 = new String();...原创 2019-08-05 21:49:57 · 80 阅读 · 0 评论 -
详述String字符串常量池
String name="tom";//字符串 String address=new String("河南郑州高新区"); //2、区别: //a、直接赋值:对象存入常量池(在堆中)中;当JVM创建字符串对象前会先去常量池中找有没有一个字符串内容与当前字符串相同,有:将已有的地址赋值给变量;无,创建新的对象 String name1="tom";//字符串 String n...原创 2019-08-04 11:13:38 · 202 阅读 · 0 评论 -
详述有名内部类与匿名内部类
public interface Mammal { void eat();}//普通外部类、抽象类、接口只能被public和default修饰,都可以有内部类public class Body { //有名内部类 class Heart{ } /* 内部类可直接定义在类中,但匿名内部类由于要创建对象故只能在方法或代码块中定义 * 内部类类似于成员变量可以被四种访...原创 2019-08-06 14:20:18 · 90 阅读 · 0 评论 -
Lambda表达式
Java支持lambda表达式始于Java8,简化了函数式接口匿名内部类的重写语法:(参数表)->{代码块}interface IComputer{ int add(int a, int b);}public class BBody { public static void main(String[] args) { IComputer computer = new I...原创 2019-08-06 17:29:56 · 91 阅读 · 0 评论 -
静态、非静态,有名、匿名内部类访问静态、非静态属性方法
非静态内部类public class Body { //非静态内部类 class Heart{ void work() { System.out.println("do"); } } public void get1() { Heart heart0 = new Heart(); Heart heart1 = new Body().new Heart(); ...原创 2019-08-06 18:14:59 · 241 阅读 · 0 评论 -
详述try-catch-finally
异常概述程序运行过程中出现的不正常的严重错误称异常,会中断程序运行,对异常的处理称异常处理,是程序设计的重难点之一异常分类Throwable有两个直接子类,Error类和Exception类。有两个常用方法public String getMessage():获取异常信息public void printStackTrace():输出异常堆栈中的异常信息Error合理的程序执行过...原创 2019-08-07 16:54:52 · 185 阅读 · 0 评论 -
详述throw和throws,运行时异常和检查时异常
运行时异常:public class AgeException extends RuntimeException{ /** * */ private static final long serialVersionUID = -3587901812576863406L; public AgeException(String arg0) { super(arg0); }...原创 2019-08-07 19:24:07 · 932 阅读 · 0 评论 -
ArrayList常用方法总结
package list;import java.util.ArrayList;public class Test { public static void main(String[] args) { ArrayList list=new ArrayList(); list.add("Tom");//用于向List集合容器中添加元素 int len = li...原创 2019-08-08 11:43:07 · 152 阅读 · 0 评论 -
HashSet常用方法总结
Collection接口有List、Queue、Set子接口,Set子接口有一个方法没有实现完的抽象类AbstractSet,HashSet是AbstractSet的子类,实现了Set接口接下来总结其常用方法add():向HashSet集合中添加元素package set;import java.util.HashSet;import java.util.Iterator;pub...原创 2019-08-08 18:12:16 · 720 阅读 · 0 评论 -
HashMap常用方法
Map集合Map接口下有一个实现类Hashtable、一个子接口SortedMap、一个抽象类AbstractMap,在AbstractMap下有一个HashMap实现类和一个TreeMap实现类,接下来介绍HashMap实现类的常用方法put():向HashMap中添加元素 key - value,key不允许重复,否则覆盖package map;import java.util.H...原创 2019-08-08 18:43:23 · 262 阅读 · 0 评论 -
在ArrayList中根据自定义类的一个属性找某个对象
今天写了学生管理系统,有很多认识太浅,所以先记录下来一点现在的一些收获remove和contains都调用了equals当遇到类似于:根据对象的一个属性去找到这个对象对其操作时,并且这个对象不是String类型而是自定义类,此时该对象调用上两个方法时会遇到shuo是上转型对象,地址指向自定义类,而自定义类并没有重写父类Object的equals方法,则这里调用的是Object的方法,比较...原创 2019-08-09 18:28:44 · 3594 阅读 · 0 评论 -
ArrayList中equals与contains底层运行方式
第一关package bayuejiu;public class equals { public static void main(String[] args) { String name1 = "Tom"; String name2 = "Tom";//先检查常量池中,有的话name2直接指向该空间 System.out.println(name1==name2);//tru...原创 2019-08-09 18:43:09 · 264 阅读 · 0 评论 -
详述HashSet的add方法如何判重(HashSet的put方法重复则覆盖)在底层的运行机制
package add;import java.util.HashSet;public class Test { public static void main(String[] args) { HashSet<String> set = new HashSet<>();//在无参构造方法中创建了HashMap对象赋给了HashSet的全局变量map se...原创 2019-08-11 17:53:03 · 1211 阅读 · 0 评论 -
获取Class类对象的6种方式
Class类简述Class类是Java反射机制的入口,封装了一个类或接口的运行时信息,通过调用Class类的方法可以获取这些信息。Class类有如下特点:1、该类在java.lang包中,不需要引包2、该类被final修饰,不可被继承3、该类实现了Serializable接口4、该类的构造方法被private修饰,不能通过关键字new创建该类的对象获取对应class类对象1、(建...原创 2019-08-20 16:50:15 · 847 阅读 · 1 评论 -
详述反射中构造方法、成员变量、普通方法的获取问题、获取信息、使用问题
获取构造方法一、权限是publicConstructor[] getConstructors():不含继承public class Student { public Student(){ } public Student(String name){ this.name = name; }}import java.lang.reflect....原创 2019-08-20 18:24:25 · 103 阅读 · 0 评论 -
File类的常用方法
一、File类File类代表一个特定的文件或者目录,并提供了若干方法对该文件或目录进行操作。二、File类构造方法package file;import java.io.File;public class file { public static void main(String[] args) { //1 File file = new File("D...原创 2019-08-21 17:16:17 · 240 阅读 · 0 评论 -
详述java中一维、二维数组的定义与使用
C语言中二维数组一般是一个矩形(用指针另说),必须定义列数Java与之不同,Java中二维数组必须定义行数,代表一维数组个数,随后可对每个一维数组定义大小,相当于两个数组嵌套定义一维二维数组package b;public class test { public static void main(String[] args) { //定义一维数组的三种方式 ...原创 2019-09-09 10:39:47 · 323 阅读 · 0 评论 -
详述泛型
一、泛型的概念泛型是Java 5的新特性,本质是参数化类型使Java语言变得更加简单安全二、在没有泛型时通常通过对Object的引用来实现参数的任意化,缺点使必须做强制类型转换要求预先知道实际参数类型对于强制转换出错的情况,可能会通过编译,只在运行时出现异常,代码存在安全隐患使用泛型编译器会检查类型是否安全,且所有类型转换都是自动、隐式的,可以提高代码复用率三、泛型类clas...原创 2020-02-29 12:38:24 · 99 阅读 · 0 评论 -
继承
继承是面向对象编程的三大特征之一,是一种基于已有类来创建新类的机制。由继承而得到的类成为子类(派生类),被继承的类称为父类(超类)语法:class <子类> extends <父类>Object类是所有类的直接父类或间接父类由于访问权限修饰符的不同,子类可以继承父类中某些成员变量和方法,子类也可添加新的成员变量和方法。如果类被final修饰,则该类不能被继承(Vo...原创 2019-07-30 23:19:34 · 420 阅读 · 0 评论 -
Java四种访问权限
publicpublic时最大的访问权限符,其修饰的成员变量、构造方法和普通方法可在任何一个类中被操作或使用privateprivate是最小的访问权限控制符,其修饰的成员变量、构造方法和普通方法只能在本类中被操作或使用default(友好的,默认的)修饰的成员变量、构造方法和普通方法可以在同包的不同类使用protected1.在同包中由于protected比default高一级...原创 2019-08-01 20:32:18 · 137 阅读 · 0 评论 -
什么是多态?
package sirius;public class Earth {public static void main(String[] args) {// Whale whale = new Whale();// whale.move();////当子类对象调用重写后的方法时,调用的是子类重写后的方法//double price = 9;// Mammal mammal = ne...原创 2019-08-01 11:40:46 · 234 阅读 · 0 评论 -
什么是Java重写,不能重写的情况
一、上例子咯以前只有老年机(博主00年,小时候是没有智能手机滴)时代慢慢嘞进步,出现智能手机这个名词所以现在改打印老年机为智能手机左边为子类,右边为父类,左右对比:1.重写是什么:把父类的方法完整地拷贝过来;把不符合期望效果的地方修改2.为什么要重写:为了满足新的要求二、导致不能重写问题的点(详细)1.父类方法被final修饰2.参数列表和方法名(1)方法名不同:(2)...原创 2019-07-30 11:41:06 · 642 阅读 · 0 评论 -
Java对象的初始化过程(成员变量由默认值到实参值全过程)
用new创建并初始化对象步骤:1.给对象的实例变量分配内存空间(因为静态变量随类的加载而加载,对象的创建在其后),默认初始化全局变量(int->0,String->null等);2.成员变量声明时的初始化(赋你给定的值);3.初始化块初始化(又称构造代码块或非静态代码块);4.构造方法初始化。上例子!public class Student{String stuName ...原创 2019-07-29 11:21:51 · 644 阅读 · 0 评论 -
java全局变量与局部变量
变量全局变量(成员变量)1.实例属性(非静态变量)2.类属性(静态变量):static修饰全局变量有初值int->0String->nulldouble->0.0char-> (空)局部变量1.方法局部变量2.形参3.代码块局部变量局部变量在使用前必须初始化或赋值在局部变量的作用域范围内访问该全局变量,必须使用this引用public cla...原创 2019-07-27 15:44:00 · 478 阅读 · 0 评论