
java基础
文章平均质量分 56
DevHappy
热爱游戏,java
展开
-
使用DBeaver 编辑链接达梦数据库
URL模板:jdbc:dm://{host}:{port} 或jdbc:dm://{host}[:{port}]/[{database}]选择“库”,以设置驱动jar包(这里达梦数据库的jdbc驱动jar在安装目录下有)确定以后,驱动管理器列表就会出现自定义的数据库DM了。选择新建连接,选择全部数据库,在列表里选择刚刚添加的。1、点击 “数据库”,选择“驱动管理器”填写数据库连接信息后,点击“测试连接”驱动名称:自定义 这里命名为“DM”连接成功,数据库信息显示如下。原创 2023-02-02 20:22:52 · 6219 阅读 · 1 评论 -
select into 和 insert into select及create table as select
SELECT INTO 语句SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。SQL SELECT INTO 语法您可以把所有的列插入新表:SELECT *INTO new_table_name [IN externaldatabase] FROM old_tablename或者只把希望的列插入新表:SELECT column_name(s)INTO new_table_原创 2021-05-01 14:57:30 · 1095 阅读 · 0 评论 -
一个线程两次调用start()方法会出现什么情况?
一个线程两次调用start()方法会出现什么情况?谈谈线程的生命周期和状态转移。典型回答Java的线程是不允许启动两次的,第二次调用必然会抛出IllegalThreadStateException,这是一种运行时异常,多次调用start被认为是编程错误。关于线程生命周期的不同状态,在Java 5以后,线程状态被明确定义在其公共内部枚举类型java.lang.Thread.State中,分别是:新建(NEW),表示线程被创建出来还没真正启动的状态,可以认为它是个Java内部状态。就绪(.原创 2020-11-30 12:42:33 · 260 阅读 · 0 评论 -
BlockingQueue(阻塞队列)详解
一. 前言 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。二. 认识BlockingQueue 阻塞队列,顾名思义,首先它是一个队列,而一个队列在数据结构中所起的作用大致如下图所示: 从上图我们可以很清楚看到,通过一个共享的队列,可以使得数据由队列转载 2020-11-05 23:41:21 · 194 阅读 · 0 评论 -
Java线程池知识点大全
Java线程池详解线程池new Thread弊端◆每次 new Thread新建对象,性能差◆线程缺乏统一管理,可能无限制的新建线程,相互竞争,有可能占用过多系统资源导致死机或OOM◆缺少更多功能,如更多执行、定期执行、线程中断线程池的好处 (1)降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗;(2)提高系统响应速度,当有任务到达时,通过复用已存在的线程,无需等待新线程的创建便能立即执行;(3)方便线程并发数的管控。因为线程若是无限制的创建,...原创 2020-11-05 23:06:26 · 135 阅读 · 0 评论 -
分布式,集群,微服务概念和区别理解
分布式集群微服务概念:集群是个物理形态,分布式是个工作方式。分布式:一个业务分拆多个子业务,部署在不同的服务器上 集群:同一个业务,部署在多个服务器上1:分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中在一起,实现同一业务。分布式中的每一个节点,都可以做集群。而集群并不一定就是分布式的。举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看...原创 2020-11-05 21:17:16 · 474 阅读 · 0 评论 -
ThreadLocal源码解析
ThreadLocalthreadlocal使用方法很简单static final ThreadLocal<T> sThreadLocal = new ThreadLocal<T>();sThreadLocal.set()sThreadLocal.get()threadlocal而是一个线程内部的存储类,可以在指定线程内存储数据,数据存储以后,只有指定线程可以得到存储数据,官方解释如下。/** * This class provides thread-lo转载 2020-10-19 19:52:58 · 127 阅读 · 0 评论 -
Java中静态变量、静态代码块的执行顺序
Java中静态变量、静态代码块的执行顺序首先创建3个类:1、Out类,用于打印变量public class Out { public Out(String word) { System.out.println(word); }}2、Parent类public class Parent { static Foo FOO = new Foo("Parent's static parameter"); Foo...原创 2020-09-16 16:08:51 · 276 阅读 · 2 评论 -
最全--Java中创建对象的5种方法
将会列举5种方法去创建 Java 对象,以及他们如何与构造函数交互,并且会有介绍如何去使用这些方法的示例。作为一个 Java 开发人员,我们每天都会创建大量的 Java 对象,但是我们通常会使用依赖管理系统去创建这些对象,例如 Spring 。然而,我们可以有更多的方式去创建对象,让我们一起在文章中去学习这些方法吧。这里列举在 Java 中创建对象的五种方式,下面将介绍它们的示例,以及创建对象的行的字节码。 1.使用 new 关键字 构造函数会被调用 2.使用 Cl..翻译 2020-10-09 23:53:40 · 2501 阅读 · 0 评论 -
java 集合List循环遍历的几种方法
import java.util.*;public class ListTest { public static void main(String[] args) { List<String> list =new ArrayList<>(); list.add("a"); list.add("b"); list.add("c"); /** * 第一种、最基础的遍历方式:f.原创 2020-09-22 18:02:12 · 2816 阅读 · 0 评论 -
java 集合Map循环遍历的几种方法
在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等)都可以用以下的方式去遍历。public class MapTest { public static void main(String[] args) { Map<String, String> map = new HashMap<>(4); map.put("1", "a");原创 2020-09-22 17:47:51 · 1005 阅读 · 0 评论 -
Java集合知识点总结
集合容器概述什么是集合集合框架:用于存储数据的容器。集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。接口:表示集合的抽象数据类型。接口允许我们操作集合时不必关注具体实现,从而达到“多态”。在面向对象编程语言中,接口通常用来形成规范。实现:集合接口的具体实现,是重用性很高的数据结构。算法:在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方法,例如查找、排序等。这些算法通常是多态的,因为相转载 2020-09-23 01:13:02 · 214 阅读 · 0 评论 -
Java异常面试题总结
Java异常架构转载 2020-09-21 17:30:53 · 627 阅读 · 0 评论 -
java基础知识重点难点
object中有哪些类访问修饰符 public,private,protected,以及不写(默认)时的区别内部类内部类可以分为四种:成员内部类、局部内部类、匿名内部类和静态内部类。局部内部类和匿名内部类访问局部变量的时候,为什么变量必须要加上final?局部内部类和匿名内部类访问局部变量的时候,为什么变量必须要加上final呢?它内部原理是什么呢?先看这段代码:public class Outer { void outMethod(){ fi原创 2020-09-16 16:19:18 · 514 阅读 · 0 评论 -
浅谈Java两种并发类型——计算密集型与IO密集型
核心是可以分别独立运行程序指令的计算单元。线程是操作系统能够进行运算调度的最小单位。PS:4核心8线程的!等于你有4个仓库,你要运输货物,8线程就是高速公路!8条高速公路送比你4条高速公路运的快吧!有一个原则是:活跃线程数为 CPU(核)数时最佳。过少的活跃线程导致 CPU 无法被充分利用,过多的活跃线程导致过大的线程上下文切换开销。线程应该是活跃的,处于 IO 的线程,休眠的线程等均不消耗 CPU。在Java并发编程方面,计算密集型与IO密集型是两个非常典型的例子,这次大象就来讲讲自己在转载 2020-09-01 15:24:33 · 820 阅读 · 1 评论 -
java局部变量和成员变量区别总结
局部变量和成员变量java局部变量和成员变量初始值问题如一下代码局部变量不赋初始值public class Inint { public static void main(String[] args) { int a; System.out.println(a); }}编译器编译不通过如一下代码成员变量不赋初始值,则编译通过public class Inint { public static int a..原创 2020-06-06 11:44:41 · 157 阅读 · 0 评论 -
Java程序内存分析:使用mat工具分析内存占用
MAT 不是一个万能工具,它并不能处理所有类型的堆存储文件。但是比较主流的厂家和格式,例如 Sun, HP, SAP 所采用的 HPROF 二进制堆存储文件,以及 IBM 的 PHD 堆存储文件等都能被很好的解析。下面来看看要怎么做呢,也许对你有用。官方文档:http://help.eclipse.org/luna/index.jsp?topic=/org.eclipse.mat.ui.help/welcome.html造成OutOfMemoryError原因一般有2种:1、内存泄露,对象已经..转载 2020-05-20 23:31:03 · 459 阅读 · 0 评论 -
http状态码
http状态码200204206301302303304307400401403404500503----摘抄《图解http》原创 2020-04-21 21:53:56 · 127 阅读 · 0 评论 -
forward和 redirect的区别?
forward和 redirect的区别?forward是容器中控制权的转向,是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重...原创 2020-04-13 20:08:24 · 122 阅读 · 0 评论 -
线程间通信的几种实现方式
线程间通信的几种实现方式一、传统线程通信synchronized + wait + notifyObject类的wait()、notify() 、notifyAll()三个方法必须由同步监视器对象来调用,分两种情况:a)同步方法,该类默认实例(this)就是同步监视器,可以在同步方法中可以直接调用b)同步代码块,同步监视器是synchronized后括号里的对象,所以必须使用此对象...转载 2020-04-12 22:33:52 · 350 阅读 · 0 评论 -
深拷贝和浅拷贝的区别
深拷贝和浅拷贝最根本的区别在于是否真正获取一个对象的复制实体,而不是引用。假设B复制了A,修改A的时候,看B是否发生变化:如果B跟着也变了,说明是浅拷贝,拿人手短!(修改堆内存中的同一个值)如果B没有改变,说明是深拷贝,自食其力!(修改堆内存中的不同的值)浅拷贝(shallowCopy)只是增加了一个指针指向已存在的内存地址,深拷贝(deepCopy)是增加了一个指...转载 2020-04-12 22:34:03 · 102 阅读 · 0 评论 -
关于Spring事务的面试题
数据库事务和Spring事务是一般面试都会被提到,很多朋友写惯了代码,很少花时间去整理归纳这些东西,结果本来会的东西,居然吞吞吐吐答不上来。下面是我收集到一些关于Spring事务的问题,希望能帮助大家过关。事务是逻辑处理原子性的保证手段,通过使用事务控制,可以极大的避免出现逻辑处理失败导致的脏数据等问题。事务最重要的两个特性,是事务的传播级别和数据隔离级别。传播级别定义的是事务的控制范...转载 2020-03-24 22:32:09 · 174 阅读 · 0 评论 -
什么是CPU密集型、IO密集型?
CPU密集型CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPU Loading很高。在多重程序系统中,大部份时间用来做计算、逻辑判断等CPU动作的程序称之CPU bound。例如一个计算圆周率至小数点一千位以...转载 2020-03-16 23:15:45 · 157 阅读 · 0 评论 -
mybatis selectlist in后面数据很多造成数据io异常处理
mybatis selectlist in后面数据很多造成数据io异常处理将传入的list数组一个很大的list分割成多个小的list处理或者用lamda表达式分组处理public class ListTest { public static void main(String[] args) { /*ArrayList<String> new...原创 2019-06-24 16:24:28 · 559 阅读 · 0 评论 -
异常Exception常见知识点
异常处理throw throws finally try catch returnThrowable 2-Exception 2-Error 3-非RuntimeException 3-RuntimeException编译时异常-事先预防出错,必须处理,否则编译不通过--文件找不到异常,文件尾部读取数据 运行时异常-程序写的有问题--数据越界,空指针异常等...原创 2019-07-01 23:39:34 · 237 阅读 · 0 评论 -
Integer与int区别转换!常见面试题
转载https://www.cnblogs.com/liuling/archive/2013/05/05/intAndInteger.htmlInteger与int的种种比较你知道多少?如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null。但是如果面试官再问一下Integer i = 1;int...转载 2019-06-25 23:49:38 · 249 阅读 · 0 评论 -
Java中boolean型变量的默认值问题
1、首先分析Java中的三种不同变量的区别,如下表所示 概念 默认值 其他 类变量 也叫静态变量,是类中独立于方法之外的变量 用static修饰 有默认初始值,系统自动初始化。 如boolean默认为false. 可以被public,protect,private,static等修饰符修饰...原创 2019-03-26 10:17:16 · 30848 阅读 · 3 评论 -
事务基础知识点
1.事务的特性ACID1)原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作 要么都发生,要么都不发生。2)一致性(Consistency)一个事务中,事务前后数据的完整性必须保持一致。3)隔离性(Isolation)多个事务,事务的隔离性是指多个用户并发访问数据库时, 一个用户的 事务不能...原创 2020-04-12 22:37:55 · 196 阅读 · 0 评论 -
抽象类和接口的区别
知识学没有学懂---决定的是你是否能用自己的语言表达出来抽象类抽象类不能创建实例,它只能作为父类被继承。抽象类是从多个具体类中抽象出来的父类,它具有更高层次的抽象。从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为其子类的模板,从而避免了子类的随意性。1.抽象类不能实例化2.抽象类中不一定含有抽象属性和抽象方法,但是含有抽象方法的类,一定是抽象类3.只能单继承...原创 2019-09-04 00:18:42 · 128 阅读 · 0 评论 -
java中length和length()的区别
length()方法是求String字符串对象中字符的个数,而length是求字数组中有多少个元素public class Test { public static void main(String[] args) { String str ="abcdefg"; int a[] ={1,3,5}; System.out.prin...原创 2019-08-09 18:45:13 · 6292 阅读 · 1 评论