
java
野菌桃
这个作者很懒,什么都没留下…
展开
-
线程3——线程间数据共享
线程的运行方式 并发运行 •线程中并发指一个时间段中多个线程都处于已启动但没有运行结束的状态。•多个线程之间默认并发运行,这种运行方式往往会出现交叉的情况。例如这段代码中,线程1与线程2的执行顺序是没有顺序的且不断交替,这一点在之前线程1的博客中已经写到,故不再细述。 串行运行 •使原本并发运行的多个线程实现串行运行,即多线程间同步执行,需要通过对象锁机制...原创 2019-09-28 17:00:29 · 319 阅读 · 0 评论 -
DBUtil实战
问题:设计一个简单的学生操作系统,实现功能要求如下package jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import...原创 2019-08-20 09:00:05 · 340 阅读 · 0 评论 -
DBUtil工具类
package com.jd.util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;/** * 数据库工具类 * *@auth...原创 2019-08-20 09:00:11 · 181 阅读 · 0 评论 -
MySQL数据库中的多表查询
什么是多表查询? 多个表的关联查询即多表查询,而多个表关联查询需要依据多表之间列关系将其连接起来,这种连接方式分为三种:内连接(inner join)、外连接(outer join)及交叉连接(cross join)我们先创建一个表格并且插入数据然后使用单表查询来查询数据select * from user_infoselect * from addres...原创 2019-08-20 08:59:54 · 166 阅读 · 0 评论 -
事务隔离级别
问题:同一个应用程序中的多个事务或不同应用程序中的多个事务在同一个数据集上并发执行时, 可能会出现许多意外的问题,这些问题可分为如下三种类型:脏读(Drity Read): 已知有两个事务A和B, A读取了已经被B更新但还没有被提交的数据,之后,B回滚事务,A读取的数据就是脏数据。不可重复读(Non-repeatable read):已知有两个事务A和B,A 多次读取同一数据,B ...原创 2019-08-20 08:59:43 · 132 阅读 · 0 评论 -
java中的equals方法
首先我们写一段代码比较两个对象public class Test { public static void main(String[] args) { String name2 = new String("tom"); //创建name1赋值tom String name2 = new String("tom"); //创建name2赋值tom Syst...原创 2019-08-20 08:59:29 · 280 阅读 · 0 评论 -
java中堆的内存模型
Java 中的堆是 JVM 管理的最大的一块内存空间,主要用于存放Java类的实例对象,其被划分为两个不同的区域:新生代 ( Young )和老年代 ( Old ),其中新生代 ( Young ) 又被划分为:Eden、From Survivor和To Survivor三个区域,如下图所示:从JDK8开始,Metaspace(元空间)替代了永久代,如下图所示:无论哪个版本的...原创 2019-08-19 18:05:38 · 154 阅读 · 0 评论 -
详述try-catch-fianlly
异常的定义在java中,我们程序除了正常运行外还有一种情况,那就是异常。Java语言将程序运行过程中所发生的不正常严重错误称为异常,对异常的处理称为异常处理。它会中断正在运行的程序,正因为如此异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点。众所周知,0不能做分母,而这段代码中的“1/0”便犯了这个错误,我们看到执行后输出了123,但是错误代码行以后的不再输出,所以...原创 2019-08-07 19:06:06 · 262 阅读 · 0 评论 -
java中的HashMap
Map接口 •概述1.Map集合基于 键(key)/值(value)映射。每个键最多只能映射一个值。键可以是任何引用数据类型的值,不可重复;值可以是任何引用数据类型的值,可以重复;键值对存放无序。•Map常用实现类:1.HashMap:允许使用null值和null键;此类不保证映射的顺序;在多线程操作下不安全2.LinkedHashMap:基于哈希表和链接列表的实现...原创 2019-08-09 18:31:20 · 200 阅读 · 0 评论 -
线程2——线程的常用方法
线程常用方法 Join方法 •join方法:执行该方法的线程进入阻塞状态,直到调用该方法的线程结束后再由阻塞转为就绪状态。要注意的一点就是:执行方法的线程与调用方法的线程并不是一个概念,例如在图片中我们看到,计数器线程本应该循环输出的,但是在i=2时执行了join方法,而join方法由时间线程调用,此时计数器线程便进入了阻塞状态,转而时间线程进入了运行状态。开始循环输出...原创 2019-08-23 20:02:49 · 145 阅读 · 0 评论 -
JDBC的执行过程
JDBC 是什么? JDBC(Java Data Base Connectivity, Java 数据库连接)是一种用于执行 SQL 语句的 Java API,是 Java 应用连接各种关系型数据库的基本的接口。可以为多种关系数据库提供统一访问。 JDBC有什么作用? 简单地说,JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。再简单具体就是完成了对数据库...原创 2019-08-20 12:03:08 · 2938 阅读 · 0 评论 -
事务的四大特性
•事务四大特性(ACID):1.原子性(Atomicity):化学中的原子指不可再分的基本微粒,数据库中原子性强调事务是一个不可分割的整体,事务开始后所有操作要么全部成功,要么全部失败,不可能停滞在中间某个环节。如果事务执行过程中出错就会回滚到事务开始前的状态,所有的操作就像没有发生一样不会对数据库有任何影响。针对同一个事务,例如张三要给李四转200元钱,在这个过程中,银行要使张三账户扣除...原创 2019-08-20 12:26:35 · 180 阅读 · 0 评论 -
详述java中的字符流、字节流与缓冲流
在java中,文件的输入和输出通过流(stream)来实现,而输入的英文为Input,输出的英文为Output,因此,java中传输文件的途径又叫做IO流。流按照处理数据的单位,可以分为字节流和字符流;按照流向分为输入流和输出流(注意:输入流和输出流都是站在程序的角度参照的)。 字节流 •字节流用于处理以字节为单位的二进制文件(如音乐、图片等) 字节流的输入流 •InputSt...原创 2019-09-27 11:26:40 · 235 阅读 · 0 评论 -
java中的File类
File类是什么 •File类代表一个特定的文件或者目录,并提供了若干方法对该文件或目录进行操作。import java.io.File;public class Test{ public static void main(String[] args) { File file1 = new File("D:\\Program_Files\\Jav...原创 2019-08-21 18:49:07 · 200 阅读 · 0 评论 -
详述反射中构造方法、属性和普通方法
构造方法的获取与操作 获取构造方法 借助Class类可以获取对应类中声明的构造方法实例对象,这些方法有:①Constructor[] getConstrutors():返回该Class对象表示类包含的所有public构造方法(不含继承)所对应Constructor对象数组。②Constructor getConstrutor(Class<?>... param...原创 2019-08-21 08:58:25 · 160 阅读 · 0 评论 -
数组的排序
在对数组进行排序的过程中,我们需要用到数值的传递才能保证数组中的序数--数值对应着改变,而数值的传递有两种方式 值传递 •值传递(pass by value)是指在调用函数时将实际参数复制 一份传递到函数中,这样在函数中如果对 参数 进行修改,将不会影响到实际参数。public class Test { public static void main(String[] args...原创 2019-08-25 11:39:55 · 264 阅读 · 0 评论 -
HashSet的add方法
我们使用过ArrayList类的add方法,其add方法是可以任意添加元素的,而HashSet的add方法则会限制添加重复元素,那么它是如何做到的呢?这需要我们通过查看底层代码来研究。import java.util.HashSet;public class HashSetLearn { public static void main(String[] args) { HashSe...原创 2019-08-12 09:02:16 · 1865 阅读 · 1 评论 -
如何获取Class类对象
什么是反射 Java反射(Reflection)是一种新的操作类中成员变量、构造方法和普通方法的机制,为了实现对成员变量、构造方法和普通方法的操作,我们需要借助Java自身提供的java.lang包下的Class类和java.lang.reflect包下的反射API 。 什么是Class类 Class类是Java 反射机制的入口,封装了一个类或接口的运行时信息,通过调用Cl...原创 2019-08-20 18:45:53 · 166 阅读 · 0 评论 -
线程1——简述线程及线程池
程序,进程,线程的概念 •程序(Program)是为实现特定目标或解决特定问题而用计算机语言(比如Java语言)编写的命令序列的集合。这就是一个程序•进程(process)指一个程序的一次执行过程。public class Hello { public static void main(String[] args) { try { Thread.sleep(1...原创 2019-08-24 17:47:57 · 225 阅读 · 0 评论 -
简单的sql语句
创建表格格式 :create+库名+表名( 属性 数据类型(长度限制) );char为限定字符长度,仅能使用符合长度的字符,varchar为最大限制,只要长度小于限制即可;多个属性之间用逗号间隔,最后一个属性后不能加逗号。插入数据格式:insert into +表名+(属性A,属性B.....) values ...原创 2019-08-20 13:54:32 · 1718 阅读 · 0 评论 -
java中的Lambda表达式
Lambda表达式的定义及其作用Java支持Lambda 表达式始于Java 8,它的出现简化了函数式接口匿名内部类的语法,其表达式语法如下:([参数1], [参数2], [参数3],.... [参数n])->{代码块}比如我们先用普通的方式创建一个匿名内部类: 这么长的一段代码中,其实真正有意义的只有创建对象,参数 以及方法体,而lam...原创 2019-08-06 18:32:28 · 216 阅读 · 0 评论 -
详述静态内部类与非静态内部类
静态内部类的定义以及使用 定义:按照是否有static修饰分为静态内部类和非静态内部类,有static修饰的为静态内部类,没有static修饰的为非静态内部类。 使用:静态有名内部类①跨类使用: 跨类使用时需要以”外部类名.内部类名“的方式说明该静态有名内部类的来源②本类使用: ...原创 2019-08-06 18:16:32 · 153 阅读 · 0 评论 -
详述如何创建String对象
String类是引用数据类型,其创建对象的方式有两种:直接赋值public class StringLearn { //创建类 public static void main(String[] args) { String name = "yjt"; //直接赋值 System.out.println...原创 2019-08-04 11:30:50 · 274 阅读 · 0 评论 -
逻辑运算符与位运算符的区别
逻辑运算符有三种类型: 运算符 用法 含义 && op1&&op2 逻辑与 || ...原创 2019-07-26 11:36:03 · 425 阅读 · 0 评论 -
java中的函数式接口,抽象类和接口的区别
函数式接口接口中有一种特殊的接口,我们称之为函数式接口,其定义为:如果接口内只定义一个抽象方法,则该接口称为函数式接口,如下例:@FunctionalInterface //函数式接口注解interface IMammal { String NAME = "哺乳动物"; void move(); ...原创 2019-08-03 17:58:07 · 1746 阅读 · 0 评论 -
父类构造方法对子类构造方法的影响
如果父类拥有无参构造方法(无论隐式的还是显式的)且子类中的构造方法又没有明确指定调用父类的哪个构造方法,则子类中没有调用该子类其它构造方法的构造方法使用super()隐式调用父类的无参构造方法,如下代码:public class Father { public Father() { System.out.println("父类构造方法"); }}//创建Father父类并创建无...原创 2019-08-03 17:46:01 · 156 阅读 · 0 评论 -
详述java中的接口
接口的定义•Java接口是抽象方法的集合,其定义语法为:访问权限控制符 interface 接口名 [extends 接口列表] {常量;抽象方法;内部类;}例如public interface Mother { //创建Mother接口 int WEIGHT=10; //创建WEIGHT常量 public void eat();...原创 2019-08-03 00:49:39 · 281 阅读 · 0 评论 -
详述java的重写
在java语言中,子类可以继承父类方法,但有时从父类继承的方法在子类中必须进行修改以适应新类的需要,这种对父类方法进行改写或改造的现象称为方法重写或方法覆盖。父类方法在子类中重写使继承更加灵活。为了举例,我们先创建一个父类并让一个子类继承:什么时候需要重写?在这段代码中,子类继承了父类的方法,输出“用筷子吃饭”。但很多时候由于实际情况的改变,父类的某些方法不再适用与子类,无法准确描...原创 2019-07-30 13:56:09 · 167 阅读 · 0 评论 -
详述对象的初始化过程
就像声明局部变量后要进行初始化或者赋值一样,在创建一个对象后也要对其进行初始化,而对象的初始化分为四步:给对象的实例变量(非“常量”)分配内存空间,默认初始化成员变量; 成员变量声明时的初始化; 代码块初始化(又称为构造代码块或非静态代码块); 构造方法初始化例如:再来写一段代码来具体体现这个过程:public class Student{ String name="...原创 2019-07-29 11:24:53 · 335 阅读 · 0 评论 -
java的三种不同注释方式
注释:是一种在程序源代码中插入的不影响程序运行的文字,可以在不妨碍程序运行的同时,使得代码具有更强的可读性(提前注释好代码的作用总是比看一遍代码理解其作用来的快的),既方便自己回头修改与更新代码,也方便了他人阅读自己的代码。java中,有三种不同的注释方式:我们先写最熟悉的"HelloWorld"代码public class HelloWorld{ public static ...原创 2019-05-22 18:19:40 · 5508 阅读 · 0 评论 -
break,continue,return的区别
break:用于switch或循环,结束当前switch或循环。例如:先写一段switch语句public class HelloWorld { public static void main(String[] args) { int i=1; switch(i){ case 1 : System.out.println("123"); case 2 : ...原创 2019-07-26 17:44:04 · 223 阅读 · 0 评论 -
详述java的继承
为什么要有继承在我们编写程序的时候,写一个新的类时,有时候可能要用到一些之前使用过的方法或者属性,如果我们重新编写的话会很麻烦。但假如能够把某些需要重复使用的方法属性写入某个类,并被另一个类使用的话,就可以省下不少时间。于是为了提高代码的重用性,就有了继承。什么是继承①继承是面向对象编程的三大特征之一,是一种基于已有类来创建新类的机制。由继承而得到的类称为子类(或派生类),被继承的类称为父...原创 2019-08-01 01:06:01 · 158 阅读 · 0 评论 -
java中的HashSet
在java的Collection集合中,除了List接口,Queue接口外,还有Set接口,而Set接口的结构如下•Set接口常用实现类:1.HashSeta.实现了 Set 接口b.“它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变”c.允许使用 null 元素2.LinkedHashSeta.HashSet的子类b.由于该实现类对象维护着一个运行于所有...原创 2019-08-08 18:45:35 · 319 阅读 · 0 评论 -
java中的访问权限
在Java中有四种访问控制符,按照访问权限从高到低依次为:public、protected、default(默认)、private。同时我们把访问时的情况分为四种:①同包下继承 ②同包下非继承 ③不同包下继承 ④不同包下非继承public:public是最大的访问权限修饰符,其修饰的成员变量、构造方法和普通方法可在任何一个类中被操作或使用;也就是说上面说的四种类型都可以访问:不同包下继...原创 2019-08-02 00:02:26 · 733 阅读 · 0 评论 -
详述有名内部类与匿名内部类
内部类的定义在java中,普通类与抽象类,我们统一称之为外部类,而在外部类中定义的类,叫做内部类。public class Father { //创建普通类Father class Son{ //在Father类中定义Son类 public void eat() ...原创 2019-08-06 12:29:01 · 135 阅读 · 0 评论 -
ArrayList常用方法总结
集合框架 •集合又称为容器,用于存储、提取、删除数据。JDK提供的集合API都包含在 java.util 包内。•集合框架两大分支:Collection接口和Map接口 Collection集合 List接口 •概述1.List接口继承Collection接口;2.该接口属于数据结构中的线性结构,用户可以根据元素的整数索引来访问元素;•List接口实现...原创 2019-08-08 12:32:09 · 243 阅读 · 0 评论 -
详述java中的StringBuffer
为什么需要StringButter在java中,有时我们需要修改一个字符串,一般我们的做法是这样的:public class StringLearn { public static void main(String[] args) { String name = "Tom"; String name2 = "T"+"om"; System.out.prin...原创 2019-08-06 00:26:39 · 278 阅读 · 0 评论 -
详述throw与throws
方法封装 在编写代码时,如果我们对一个属性使用public访问控制符,那么这个属性会对后来的使用者完全公开,可以随意对其赋值,可能违背了我们的初衷。这时我们就需要进行封装。public class Student { private int age; //使用private限制外部随意更改age属性 public void...原创 2019-08-08 00:14:55 · 214 阅读 · 0 评论 -
详述java的多态
什么是多态在介绍多态之前,首先我们要明白多态是基于java中继承的延申,所以我们先创建一个子类与父类public class Mammal{ public void move() { System.out.println("移动"); }//创建父类,添加方法move}public class Whale extends Mammal{ }//创建子类,继承父类...原创 2019-08-01 11:44:49 · 199 阅读 · 0 评论 -
局部变量与全局变量
在java语言中,依照作用范围可划分为局部变量与全局变量(也叫成员变量)。顾名思义,全局变量的范围肯定是比局部变量的范围广的,首先说一下全局变量。全局变量:直接在类中声明的变量就叫做全局变量(即成员变量)例如这段代码中,x,falg等变量都是在类中直接声明的,所以它们都是全局变量。全局变量可以在其所在的整个类中被应用,并且定义时没有先后顺序,图中代码main方法写在flag声明...原创 2019-07-27 16:03:55 · 592 阅读 · 0 评论