![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
【Java】-- 基础类
文章平均质量分 73
java基础
木子松的猫
为了毫不费力,所以必须努力。
展开
-
java集合map
本文会对java集合框架中的对应实现HashMap和ConcurrentHashMap的实现原理及工作原理进行总结,用于整理和学习。原创 2022-01-03 21:52:56 · 688 阅读 · 0 评论 -
【J2EE】-规范
概述目前,Java平台有三个版本:适用于小型设备和智能卡的J2ME(Java 2 Platform Micro Edition)、适用于桌面系统的J2SE和适用于企业级应用的J2EE。首先需要明确的是:J2EE是一个标准,而不是一个现成的产品。 J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共同的标准及规格,让各种依循J2EE架构的不同平台之间,存在...原创 2018-04-29 09:49:46 · 230 阅读 · 20 评论 -
【J2EE】-JDBC
JDBC简介JDBC是由java编程语言编写的类及接口组成,同时它为程序开发人员提供了一组用于实现对数据库访问的JDBC API,并支持SQL语言。利用JDBC可以将JAVA代码连接到oracle、DB2、SQLServer、MYSQL等数据库,从而实现对数据库中的数据操作的目的。JDBC的主要功能(1)建立与数据库或者其他数据源的链接 (2)向数据库发送SQL命令 (3)...原创 2018-04-29 09:10:57 · 243 阅读 · 14 评论 -
J2SE简单总结
J2SEJ2SE就是Java2的标准版,主要用于桌面应用软件的编程,包含那些构成Java语言核心的类。比如:数据库连接、接口定义、输入/输出、网络编程。J2EE是Java的一种企业版。J2EE是在J2SE的基础上添加了一系列的企业级应用百年城接口,J2EE包含很多的技术,其中有jsp,servlet,jdbc,jme等13种技术。J2EE主要是用来做B/S结构的应用程序,也就是说是基于浏览器和服务...原创 2018-03-08 10:51:00 · 268 阅读 · 13 评论 -
线程
基本概念 概念:多线程是多任务的一种特别的形式,一条线程指进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。多线程能满足程序员变现高效率的程序来达到充分利用cpu的目的。 线程和进程的区别: 线程的创建 方法一:通过实现Runnable接口; 首先定义线程类实现Runnable接口; 然后声明线程:Thre...原创 2018-03-03 20:06:02 · 177 阅读 · 4 评论 -
Java 常见异常种类
Java Exception:1、Error 2、Runtime Exception 运行时异常3、Exception 4、throw 用户自定义异常 异常类分两大类型:Error类代表了编译和系统的错误,不允许捕获;Exception类代表了标准Java库方法所激发的异常。Exception类还包含运行异常类Runtime_Exception和非运行异常类Non_RuntimeExc...转载 2018-02-24 10:29:23 · 184 阅读 · 30 评论 -
Java异常
前言Java异常是Java提供的用于处理程序中错误的一种机制。异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性的处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。异常的分类Error:一般是环境问题,并非程序的问题。最典型的就是虚拟机中运行的程序过多,造成的虚拟机内存溢出,虚拟机错误,还有系统崩溃之类的,应用程序是无法处理此类错误的。Error不在我们调试代...原创 2018-02-24 10:25:56 · 244 阅读 · 30 评论 -
【内存解析】-JVM
引言原本只是想了解一下程序运行时堆栈分配空间的问题,结果看着看着,发现堆栈是JVM中东西,那JVM是什么呢?他的动能和原理有是怎样的呢?就顺便了解了一下。 什么是JVM? JVM是Java Virtual Machine的缩写,通常成为java虚拟机,作为Java可以进行一次编写,到处执行(Write once, run anywhere)的平台基础,由JVM帮工程师屏原创 2018-02-01 15:33:21 · 182 阅读 · 5 评论 -
【内存解析】-代码图解
class Point{ double x,y,z; Point(double _x,double _y,double _z){ x = _x; y = _y; z = _z; } void setX(double _x){ x = _x; } double getDistance原创 2018-02-01 15:42:17 · 915 阅读 · 5 评论 -
软件测试
前言软件测试方法分为两种:静态测试和动态测试。静态测试静态测试是指被测试程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行测试。人工测试:人工检测是指不依靠计算机而是靠人工审查程序或评审软件,包括代码检查、静态结构分析和代码质量度量等。计算机辅助静态分析:利用静态分析工具对被测试程序进行特性分析,从程序中提取一些信息,以便检查程序逻辑的各种缺陷原创 2017-10-29 21:26:40 · 584 阅读 · 15 评论 -
编码-一个很精彩的故事
一直对字符的各种编码方式懵懵懂懂,什么ANSI UNICODE UTF-8 GB2312 GBK DBCS UCS……是不是看的很晕,假如您细细的阅读本文你一定可以清晰的理解他们。Let's go! 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。 再后原创 2018-01-28 09:54:29 · 234 阅读 · 25 评论 -
批量添加-动态拼接字符串
字符串拼接主要包括以下三类,第三种方法是今天的重点。+Sring.format()StringBuilder.Append()一、+ 对于少量固定的字符串拼接,我们可以简单利用“+”:string s= “a” + “b” + “c”;这样写,系统或优化成如下代码,不会新建多个字符串。s= String.Concat(“a”,”b”,”c”)原创 2017-12-27 15:41:14 · 2629 阅读 · 20 评论 -
重载,重写以及多态
重写override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。重写(覆盖)的规则:1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载.2、重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private)。3、重写的方法的返回值必须和原创 2017-12-10 21:09:46 · 505 阅读 · 6 评论 -
java集合List
Java集合一直理解的都是片面的,整理一下,将知识组织成面,更便于理解。原创 2022-01-10 09:55:41 · 963 阅读 · 0 评论 -
【JVM】- 运行时数据区
一、什么是JVMJVM是整个java实现跨平台的最核心的部分,能够运行以Java语言写的程序。java语言“一次编译,到处运行”,正是由于jvm的存在,才得以实现。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码文件),就可以在多种平台上不加修改地运行。而一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的...原创 2019-06-01 16:47:52 · 149 阅读 · 1 评论 -
分布式基础-序列化性能对比
序列化理解序列化就是将java对象转化为字节文件;反序列化就是将字节文件转化为java对象。比如我们用到Entity都是需要实现序列化接口的。java平台允许我们在内存中创建一些可服用的对象(例如Entity),也即是在一个JVM进程中允许创建可复用对象。如果在同一个JVM进程中(可以理解为架构?),如果需要用此对象,直接传递该对象的引用就可以了。但是对于分布式架构,就相当于多个JVM进程在...原创 2019-05-12 15:13:17 · 585 阅读 · 0 评论 -
Mysql中的bit类型
利用它可定义一个位变量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是0就是1,类似Boolean类型中的True和False。值域char为8位一个字节的数据类型,取值范围为 -128到+127。而bit只有1位,只能表示0和1两种值。通常bit定义的变量作为一个标志位用。类型定义例如一个数据为25,那么它就可以定义为char型、int型等。因为他们都在自己的值域内。同样...原创 2018-10-23 19:10:23 · 51916 阅读 · 12 评论 -
获取当前时间的前一天时间
前端js获取 time = new Date(new Date().getTime() - 24 * 60 * 60 * 1000); time = time.sformat("yyyy-MM-dd hh:mm:ss");后端java获取 Calendar ca = Calendar.getInstance();//得到一个Calendar的实例...原创 2018-10-29 10:36:39 · 13133 阅读 · 15 评论 -
json对象和json字符串
前端传json对象和json字符串的区别Json对象前端代码$.ajax({ url: ctx + "membermessagegroupsend/save.do", type: "POST", data: { mgsPkid:messageId,//用于判断是新增操作还是编辑操作 title: messageName, ...原创 2018-10-24 19:01:54 · 345 阅读 · 12 评论 -
map、set、list集合操作汇总
map类型对比HashMap:遍历时,获取数据的顺序完全随机;不支持线程同步;LinkedHashMap:可以保存记录的插入顺序,遍历输出的顺序和插入的顺序一致;TreeMap:遍历时,保存的记录可以根据键自动排序;HashTable:支持线程同步;不允许记录的键或者值为空;public class mapTest { public static void main(String...原创 2018-11-30 19:02:19 · 260 阅读 · 2 评论 -
【并发编程】-创建多线程的七种方法
线程池原创 2018-12-14 18:52:42 · 262 阅读 · 1 评论 -
【并发编程】-Synchronized解决线程安全性问题
前言上篇博客我们总结了线程安全性问题。造成线程安全性问题的其中一个诱因就是多线程环境下存在共享数据;而解决这个诱因的方法就是利用Synchronized的互斥性;原理就是当存在多个线程操作共享数据时,需要保证同一时刻有且只有一个线程在操作共享数据,其他线程必须等待该线程执行完后才能再执行。应用方式1、修饰普通实例方法,锁住的是该类的实例对象/** * synchronized 放在...原创 2018-12-26 16:09:44 · 334 阅读 · 0 评论 -
如何对同一张表中的同一个字段进行比较
shrio原创 2018-12-09 19:10:28 · 904 阅读 · 2 评论 -
【并发编程】-多线程存在的风险
线程安全性问题活跃性问题性能问题原创 2018-12-21 19:42:49 · 263 阅读 · 0 评论 -
【并发编程】-Volatile解决线程安全性问题
Volatile称之为轻量级锁。原创 2019-01-06 15:29:18 · 468 阅读 · 0 评论 -
【并发编程】-lock锁
为什么使用locka. 灵活性i. lock需要显示的获取和释放锁,繁琐但灵活ii. synchronized不需要显示地获取和释放锁,简单b. 公平性i. 使用lock可以方便的实现公平性c. 非阻塞的获取锁,trylock(),如果没有获取,返回false,如果获取,返回trued. 能被中断的获取锁,也就是获取锁时可以被中断e. 超时获取锁。超过了设定的时间,如果没有获取,返...原创 2019-01-27 08:39:13 · 270 阅读 · 3 评论 -
分布式基础-网络通信之BIO
IO什么是IOIO即输入/输出,是input和output的缩写。输入输出是所有程序都必须的部分--使用输入机制,允许程序读取外部数据(包括来自磁盘、光盘等存储设备的数据)、用户输入数据(键盘、鼠标);使用输出机制,允许程序记录运行状态,将程序数据输出到磁盘、光盘、显示器等存储设备中,或显示屏显示。什么是流IO流是java对输入/输出源的抽象表述,是实现输入/输出的基础。通俗理...原创 2019-04-27 20:44:47 · 262 阅读 · 1 评论 -
分布式基础-网络通信之NIO
上篇文章介绍了BIO,是阻塞式的输入输出。客户端和服务端在发起请求和响应请求的时候需要保持同步连接,如果数据源或客户端没有数据或请求,或者请求量太大,都会造成线程阻塞,从而影响效率,浪费资源。从JDK1.4开始,Java提供了一些列改进的输入输出处理的新功能,被称为新IO,即NIO,新增了许多用于处理输入输出的类,这些类都被放在java.nio包以及子包下,并且地缘java.io保中的很多类都...原创 2019-05-04 11:13:52 · 230 阅读 · 0 评论 -
【并发编程】- JMM和happens-before规则
涉及到并发,我们通常会想到两方面,一方面是使用多线程实现程序并发,另一方面是使用锁防止程序并发。不管是哪一方面都涉及到两大核心,三大性质。两大核心分别是Java内存模型、Happen-Before原则。三大性质分别是原子性、可见性、有序性。在并发编程中主要需要解决两个问题:一、线程之间如何通信;二、线程之间如何完成同步。通信是指线程之间以何种机制来交换信息,主要有两种方式:共享内存和消息传...原创 2019-05-19 21:43:56 · 885 阅读 · 0 评论 -
【并发编程】-- 原子性、可见性、有序性
上篇博客我们提到了Java内存模型,而Java内存模型的建立是围绕三个特征建立的:原子性、可见性、有序性。那么可见性可能出现的问题例如脏读,主内存和工作内存之间的共享变量操作方式,保证了数据可见性,另外volatile的强制刷新增强了可见性;有序性可能出现的问题例如单例的双重锁隐藏的安全性问题,Happens-Before“禁止部分”编译器重排序,另外volatile通过插入内存屏障来禁止...原创 2019-05-20 16:14:07 · 1169 阅读 · 2 评论 -
Java字符串截取
//取扩展名不要“.” String extName = originalFilename.substring(originalFilename.lastIndexOf(“.”) + 1);IndexOf、LastIndexOf、Substring原创 2018-08-12 21:31:30 · 1135 阅读 · 4 评论