
Java
文章平均质量分 95
Java语言基础内容
mhhhb
这个作者很懒,什么都没留下…
展开
-
HashMap源码分析
本文分析是基于JDK1.8中的HashMap源码原创 2022-03-14 10:08:53 · 1307 阅读 · 0 评论 -
浅析Mybatis
介绍Mybatis是Java的持久层(DAL)框架Mybatis是ORM框架ORMORM是对象和关系型数据库映射, 简单的说就是把代码中的对象与表结构一一对应, 做到对象与表结构的转换, 也可以理解为在编程语言(代码)中使用的"虚拟数据库".将关系型数据库表中的记录映射成为对象, 以对象的形式呈现.知名度比较高的ORM框架hibernate 全自动, 功能强大, 笨重, 学习成本高Mybatis 半自动, 支持自定义SQL语句JAP Java自带框架NHibernate .NET原创 2021-09-17 00:09:45 · 322 阅读 · 0 评论 -
Java反射
Java反射应用广泛, 能够配置 : 类的全限定名、方法和参数, 完成对象的初始化, 甚至是反射某些方法. 这样就可以大大增强Java的可配置性, Spring IoC的基本原理也是如此.通过反射构建对象在Java中允许通过反射配置信息构建对象,ReflectServiceImpl类package com.IDEA_Project.reflect;public class ReflectServiceImpl { public void sayHello(String name){原创 2020-10-27 20:44:08 · 113 阅读 · 0 评论 -
静态块
静态代码块中的代码会在类加载JVM时运行,且只被执行一次,也就是说这些代码不需要实例化类就能够被调用。一般情况下,如果有些代码必须在项目启动的时候就执行的时候,就需要使用静态代码块。静态块常用来执行类属性的初始化。...原创 2020-09-14 14:09:34 · 165 阅读 · 0 评论 -
Java库类
Java基础(库类)String类每个用双引号里的字符串都是String类的一个实例对象.String类对象是不可变字符串""是长度为0的空串(和null有区别) str.substring(num1,num2); //提取子串,num1是起始位置,num2是结束位置.(从0开始计数) String astr = String.join("分隔符","字符串1","字符串2","字符串3","字符串n"); //把多个字符串放在一起,用指定的分隔符分割 str = str.su原创 2020-09-13 15:53:05 · 93 阅读 · 0 评论 -
String 类
String类 字符串类,在编程中使用次数非常多. String类来创建和操作字符串.创建字符串String str = "csdn博客";和其它对象一样,可以使用关键字和构造方法来创建 String 对象。String类有11种构造方法,这些方法提供不同的参数来初始化字符串. 具体可以参见String的源码String是不可变类型, 对字符串比较多的修改,应该使用StringBuffer和StringBuilder类字符串长度String.length();返回值是int类型连接字原创 2020-09-13 12:44:54 · 163 阅读 · 0 评论 -
StringBuffer 和 StringBuilder 类
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。原创 2020-09-13 12:20:03 · 114 阅读 · 0 评论 -
Java引用
在Java中有引用对象, 引用对象又分为强软弱虚四种强引用首先是强引用, 也就是普通引用:只要有一个引用指向了对象, java垃圾回收器就不会回收这个对象, 这就是普通引用(强引用), 当一个对象没有引用指向时就会被回收.import java.io.IOException;public class test01 { public static void main(String[] args) throws IOException { M m = new M();//原创 2020-08-21 23:39:46 · 515 阅读 · 0 评论 -
设计模式基本介绍
设计模式23种设计模式 编写软件过程中, 程序员面临着来自 耦合性, 内聚性以及可维护性, 可扩展性, 重用性, 灵活性 等多方面的挑战, 设计模式是为了让程序(软件), 具有更好的代码重用性(相同功能的代码, 不用多次编写)可读性(编程规范性, 便于其他人阅读理解)可扩展性可靠性(新增功能后, 对原有功能没有影响)使程序呈现高内聚, 低耦合的特性模块内部是非常紧密的, 功能和功能之间是低耦合的设计模式七大原则设计模式原则: 其实就是程序员在编程时, 应当遵守的原则, 也是各种设计模原创 2020-08-17 20:25:38 · 285 阅读 · 0 评论 -
多线程和高并发(2)
xx原创 2020-08-06 17:40:15 · 115 阅读 · 0 评论 -
Java连接Mysql(JDBC)
Java连接MysqlJDBC (Java DataBase Connection) 是通过JAVA访问数据库.java连接mysql数据库需要第三方的类, 大多数java的类包的后缀名都是jar压缩包.导包: Project->property->ava build path->libaries->add external jars中文版: 项目->属性->Java构建路径->库->添加外部JARmysql的第三方包网上都有, 自行百度.如果使用原创 2020-08-05 14:23:45 · 279 阅读 · 0 评论 -
多线程和高并发(1)
程序进程: 一个程序里不同的执行路径(同时执行)线程协程面试问题: 启动线程的三种方式Thread 从Thread继承Runnable 实现Runable接口Executors.newCachedThrad 通过线程池来启动注: 使用线程池启动本质和使用Thread同源...原创 2020-07-29 09:49:05 · 195 阅读 · 0 评论 -
Java内存机制
在Java中有四块内存空间分别是栈内存空间、堆内存空间、全局数据区、全局代码区其中全局数据区存放static(静态)类型的属性, 全局代码区存放所有的方法定义.使用最多的两块内存区域是栈和堆.栈内存中存放的是在函数中定义的基本类型的变量和定义的引用变量, 当一段代码块定义一个变量时, Java就在栈中为这个变量分配内存空间, 当超过变量的作用域后, Java会自动释放掉为该变量分配的内存空间, 该内存空间可以立即被另做他用.引用变量(简称 ‘引用’)实质上是数组或对象在堆内存中的首地址, 引用变量原创 2020-07-28 16:11:47 · 187 阅读 · 0 评论 -
多线程
多线程的实现进程: 启动一个可执行文件就是一个进程线程: 线程是进程内部所做的完成的任务继承Thread 重写Run方法继承Thread启动线程实例化对象, 调用start方法实现Runnable接口 重写Run方法实现Runnable接口启动线程实例化对象, new Thread(对象).start匿名类实现多线程线程池实现多线程常用方法Thread.sleep() 当前线程暂停Thread.sleep() 会抛出InterruptedException 中断异常单位是毫秒(原创 2020-07-16 21:08:03 · 136 阅读 · 0 评论 -
java容器和泛型
Java泛型使用ArrayList存放对象, 当没有指定类型时, 它可以存放所有类型 ArrayList al = new ArrayList(); //可以存放各种类当指定泛型的容器, 那么泛型中只能存放该类型和该类型的子类 ArrayList<tool> tools = new ArrayList<>(); //只能存放tool和tool的子类 ArrayList<tool> tools = new ArrayList<tool>();原创 2020-06-19 12:10:02 · 254 阅读 · 0 评论 -
Java文件对象和流
File类 File f1 = new File("路径"); //创建文件对象 File f2 = new File(f1,"路径"); //通过给定的父抽象路径名和子路径名字符串创建一个新的File实例File对象的操作 public String getName() //返回由此抽象路径名表示的文件或目录的名称。 public String getParent() //返回此抽象路径名的父路径名的路径名字符串,如果此路径名没有指定父目录,则返回 null。 public Fi原创 2020-06-16 10:02:06 · 424 阅读 · 0 评论 -
java文件拆分与合并
拆分和合并需要先导入一些java包import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Arrays;主程序 public static void main(String[] args) { File f = new原创 2020-06-14 15:45:10 · 380 阅读 · 0 评论 -
异常
异常异常对象都是派生于Throwable类的一个实例所有的异常都是由Throwable继承而来.Error类层次结构描述了Java运行时系统的内部错误和资源耗尽错误.这种错误是比较少见的.Exception层次有两个分支, 一个分支派生于RuntimeException; 另一个分支包含其他异常. 划分两个分支的规则是: 由程序错误导致的异常属于RuntimeException; 而程序本身没有问题, 但由于想I/O错误这类问题导致的异常属于其他异常(IOException).出现Runtim原创 2020-06-10 07:59:16 · 296 阅读 · 0 评论 -
时间和日期
时间和日期Date类java.util.Date; 日期类java.sql.Date; 数据库日期类在计算机中, 所有的数据都是以数字的形式存放. 日期中的0, 代表的是时间原点, 对应的日期是1970年1月1日 8点0分0秒. 在这个时间上每过1毫秒数值就+1.查看当前时间 Date time = new Date(); System.out.println(time);获取日期的数值 Date time = new Date(); System.out.println(time.原创 2020-06-06 12:29:30 · 225 阅读 · 0 评论 -
Java基本类型和字符串
装箱拆箱基本类型都有所对应的类类型.byte对应Byte, int对应Integer, double对应Double, short对应Short, float对应Float, long对应Long. 这些数字封装类都是抽象类Number的子类. int i1 = 1; Integer i = new Integer(i1); //把一个基本类型的变量,转换为Integer对象 int i2 = i.intValue(); //把一个I原创 2020-06-05 21:20:04 · 170 阅读 · 0 评论 -
内部类
Java内部类使用内部类的原因内部类方法可以访问该类定义所在的作用域中的数据, 包括私有的数据.内部类可以对同一个包中的其他类隐藏起来.当想要定义一个回调函数且不想编写大量代码时, 使用匿名内部类比较快捷.非静态内部类语法:内部类 实例名 = 外部类实例.new 内部类(); AA outside = new AA(); BB inside = outside.new BB(); //AA, BB 均为类名静态内部类静态内部类不需要外部类的实例化语法:外部类.内部类 实例名原创 2020-06-04 09:09:54 · 157 阅读 · 0 评论 -
Java接口和抽象类
Java接口在JAVA中, 接口不是类, 而是对类的一组需求描述, 这些类要遵从接口描述的统一格式进行定义. 通俗来说接口就像是一种约定.实现某个接口,就相当于承诺了某种约定.实现在语法上使用关键字 implements.public interface Hello { public void output(); //声明一个方法, 但没有方法体, 是一个"空"方法}所以,实现了Hello这个接口,就必须提供Hello接口中声明的方法output. public class one im原创 2020-06-03 17:27:18 · 284 阅读 · 0 评论 -
JAVAsuper
父类有一个无参数的构造方法, 当实例化一个子类之后, 其构造方法也会被调用, 其父类的构造方法也会被调用, 并且父类的构造方法会先被调用, 子类构造方法会默认调用父类的构造方法. public class AA{ public AA(){ System.out.println("父类构造方法"); } } public class BB extends AA{ public BB(){ System.out.println("子类构造方法"); } } publi原创 2020-06-03 08:53:21 · 152 阅读 · 0 评论 -
Java面向对象
引用变量以对象的形式存在(引用变量是指向对象的).引用变量只是保存对象的句柄(引用变量保存了对象在堆内存中的存储地址,引用变量也被称为对象句柄).除了八种基本类型外, 用类、接口、数组等声明的变量都成为引用类型变量(引用变量), 简称"引用".更改器方法和访问器方法注意: 不要编写返回引用可变对象的访问器方法public class Employee {private LocalDate hireday;public LocalDate getHireday() { return hir原创 2020-06-02 15:46:14 · 144 阅读 · 0 评论 -
Java多态
JAVA多态多态: 都是同一个类型,调用同一个方法,却能呈现不同的状态.要实现类的多态,需要如下条件父类(接口)引用指向子类对象调用的方法有重写多态的使用 //定义一个接口 public interface abc{ public void effect(); } 在类中定义一个方法 public void attack(abc i){ i.effect(); } public static void main(String[] args) {原创 2020-06-01 22:08:23 · 136 阅读 · 0 评论 -
Java对象的转换
Java对象的转换强制类型转换将一个类型强制转换成另外一个类型的过程被称为类型转换. Java专门提供类型强制转换的表示法. double x = 1.23; int y = (int)x;对象引用的转换语法与数值表达式的类型转换类似.在什么时候需要转换, 将一个子类的引用赋给一个超类(父类)变量...原创 2020-05-28 17:08:11 · 2336 阅读 · 0 评论 -
Java数组
Java基础(数组)数组是用来存储同一类型值的集合,可以通过下标来访问其中值.初始化数组int[] a = new int[10];//使用new运算符创建数组int a[] = new int[10];//两者方式均可,习惯那种就用那种//创建数组时明确要指明长度int a[] = new[]{1,2,3,4,5};int a[] = {1,3,5,7,9};int a[] = new[10]{1,2,3} //会报错引用概念:如果变量代表一个数组, a[], 我们称a为引用原创 2020-05-26 15:33:22 · 138 阅读 · 0 评论 -
equals和==的区别
Java中equals和==的区别本文内容来自百度java中的数据类型,可分为两类:1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean他们之间的比较,应用双等号(==),比较的是他们的值。2.复合数据类型(类)当他们用( == ) 进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。 JAVA当中所有的类都是继承于Object这个基原创 2020-05-27 19:23:53 · 150 阅读 · 0 评论 -
Java基础(流程控制)
Java基础(流程控制)if语句if语句的一个小坑if (a>b); System.out.println("haha")如果a>b, 会执行分号,然后打印haha, 如果a<b,那么将不会执行分号, 然后打印haha. 这样无论如何都会打印hahaif else语句if(true){...;}else if(...){...;}else{...;}switchswitch可以使用byte,short,int,char,String,enum原创 2020-05-14 21:19:29 · 172 阅读 · 0 评论 -
Java编译过程与Linux JKD的安装配置
Java编译运行过程初学Java最先要了解的就是Java的编译过程.我们编写的源文件(.java)首先要经过编译成字节码文件(.class)Java程序的运行需要JVM的支持. JVM是一个软件, 作用是为字节码文件提供运行环境;Java的强大之处就在于只要是标准的字节码文件(.class), 就可以在不同的JVM上运行, 且效果相同.JDK Java开发工具包JRE Java运...原创 2020-05-12 20:29:42 · 208 阅读 · 0 评论 -
Java运算符
Java基础(运算符)算数运算有+ - * / % 自增 减++ – int a = 5; long b = 6; int c = (int) (a+b); //a+b的运算结果是long型 long d = a+b; byte a = 1; byte b= 2; byte c = (byte) (a+b); //虽然a b都是byte类型,但是运算结果是int类型 int d原创 2020-05-11 22:29:14 · 118 阅读 · 0 评论 -
JAVA基本类型和final修饰符
Java基础(变量)基本类型是Java语言里的一种内置的特殊数据类型,并不是某个类的对象。变量浮点数字面值43.123默认是double类型, float f = 43.123 会报错!应该写成 float f = 43.123f (F)科学计数法e2表示10的二次方double y =1.43e2 // 1.43*100 科学技术法表示double整型字面值int a =123 long b =1234L 长整型int c = 0x9ca 十六进制int d =077原创 2020-05-11 15:10:25 · 370 阅读 · 0 评论 -
Java Scanner类
Java基础(Scanner类)向控制台输入数据, 需要用到Scanner类导入import java.util.Scanner;基本运用import java.util.Scanner;public class test1 { public static void main(String[] args) { // 如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 next原创 2020-05-11 17:35:49 · 164 阅读 · 0 评论