java基础
文章平均质量分 53
java基础
小明同学~~
以恒心,待初心
展开
-
反射效率为什么低?
最近看spring源码相关内容,看到aop的实现,其中有动态代理涉及到反射内容,总有帖子说反射效率低,所以就想验证下反射效率是否整点低,以及低到什么程度?是否只要使用就很影响性能?测试类输出结论反射10次反射100次反射1000次反射10000次反射100000次反射1000000次...原创 2022-07-05 18:41:48 · 449 阅读 · 0 评论 -
Java基础 -- java 类中registerNatives()方法的作用是什么
在研究源码的过程中,有很多类都存在registerNatives方法,Class,ClassLoader,Object 等等类都存在这个方案,而且这个方法还是native 的? private static native void registerNatives(); static { registerNatives(); }后面找了一下资料基本明白他是做什么的了。Java程序要想调用本地方法,需要执行两个步骤:第一,通过System.loadLibra原创 2021-05-17 17:37:17 · 3551 阅读 · 0 评论 -
java基础 – 泛型
java基础 – 泛型核心概念:你只需告诉编译器要使用什么类型,剩下的细节交给它来处理。使用泛型类型机制的最吸引人的地方,就是在使用集合类的地方创建对象创建对象时,必须指明要持有的对象的类型,将其置于尖括号内。元组元组,它是将一组对象直接打包存储于单一对象中。可以从该对象读取其中的元素,但不允许向其中存储新对象实现泛型栈package com.somin.泛型;public class LinkedStack<T> { private static class No原创 2021-02-20 16:13:35 · 135 阅读 · 0 评论 -
java基础 – 注解
java注解核心处理就是利用反射获取注解,注解内容本身较少,想使用好注解更多的在于设计代码的能力,如何使用反射元注解@Target表示注解可以用于哪些地方。ElementType 参数包括:CONSTRUCTOR:构造器的声明;FIELD:字段声明(包括 enum 实例);LOCAL_VARIABLE:局部变量声明;METHOD:方法声明;PACKAGE:包声明;PARAMETER:参数声明;TYPE:类、接口(包括注解类型)或者 enum 声明。@Retention原创 2021-02-18 13:51:30 · 115 阅读 · 2 评论 -
java基础 – 异常性能分析
java基础 – 异常性能分析异常使用频率较高,不再赘述基础使用部分,主要分析一下异常与性能的关系以下是几段代码分析一下,性能与异常的关系正常代码 public void test1(){ long start=System.currentTimeMillis(); for (int i=0;i<2000000000;i++){ i=(i*i-i+i)*i/2+7*33+4055-45+7; } long end=System.currentTimeMi原创 2021-01-29 15:13:49 · 234 阅读 · 0 评论 -
java基础 -- 枚举使用与源码解析
枚举类型是指有一组固定的常量组成合法值的类型。 --Effective Java 第二版有时恰恰因为它,你才能够“优雅而干净”地解决问题。 --Java编程思想 第四版枚举使用场景常量switch添加方法实现接口使用接口组织枚举枚举替代常量的优势在Effective Java和编写高质量代码两本书种都“推荐使用枚举定义常量”1.枚举常量更简单2.枚举常量属于稳态3.枚举具有内置方法4.枚举可以自定义方法枚举基础方法 public static.原创 2021-01-28 18:50:09 · 396 阅读 · 0 评论 -
java基础 -- 史上最易懂的Idea创建maven聚合,继承项目
史上最易懂的Idea创建maven聚合,继承项目手把手创建Idea创建maven聚合,继承项目,直接上图同理:创建一个son-two项目创建完成,简单不?...原创 2018-03-16 19:39:43 · 728 阅读 · 0 评论 -
Java基础 -- 环境搭建
Java环境配置Window系统安装java首先下载JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html下载之后按照提示安装jdk,继续会安装JRE。将路径jdK和JRE分开放置在两个文件。路径为C:\Java\jdk7.8.0_31和C:\Java\jre配置环...原创 2017-05-10 10:24:02 · 331 阅读 · 0 评论 -
java基础 -- eclipse设置注释
/*** @ClassName: ${type_name} * @Description: ${todo}(这里用一句话描述这个类的作用) ** @author shimingda@deepsense.cn* @version 创建时间:${date}**/原创 2019-02-14 11:52:09 · 232 阅读 · 0 评论 -
并发篇-1-概念总结
1.了解进程和线程区别进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程。线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。2.了解串行和并行的区别串行就是指程序中的程序段必须按照先后顺序来执行,也就是只有前面的程序段执行完了,后面的程序段才能执行。并行指两个或两个以上...原创 2018-03-01 10:05:05 · 191 阅读 · 0 评论 -
IO -- 序列化详讲
一、序列化意义序列化:将数据结构或对象转换成二进制串的过程反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程二进制串: 序列化所生成的二进制串指的是存储在内存中的一块数据。 简单来说序列化就是一种用来处理对象流的机制。将对象输出至文件才会有序列化的产生。所谓对象流也就是将对象的内容进行流化,流的概念这里不用多说(就是I/O)。我们可以对流化后的对象进...原创 2018-02-26 10:38:24 · 398 阅读 · 0 评论 -
java基础 -- 开发手册
读开发规范有感最近读了师傅写的开发手册深有感触,里面写了很多开发需要注意的地方,还有很多技巧,更多的是开发规矩,这样开发的意思。首先我们为什么要开发规范第一点,是开发代码规范,代码机构清晰,便于后其维护,更有助于代码重构,好处之大,可想而知,一个项目的生命周期,百分之八十在项目维护上。第二地,规范的 代码,让人赏心悦目,更能体现出开发者的水平,也能表现出整体团队的实力程度。编码...原创 2017-11-26 17:02:30 · 480 阅读 · 0 评论 -
java基础 -- ES简要知识点
ES简要知识点下载ES官网下载:https://www.elastic.co/downloads/elasticsearch注意下载5.0以后的版本单例安装启动:在bin目录下执行elasticsearch.bat,端口:9100安装插件head为web可视化页面,端口9200配置config下的elasticsearch.yml文件,在尾部加上:http.cors...原创 2017-11-14 10:53:14 · 592 阅读 · 0 评论 -
java基础 -- ssh框架数据流向:页面——数据库——页面
有错误欢迎大家指正,希望相互学习,公共进步!原创 2017-04-12 14:27:03 · 1837 阅读 · 1 评论 -
java基础 -- ssm框架开发数据流向
Ssm框架开发数据流向页面——数据库——页面掌握数据流向相当于把握住了开发编程命脉,所以清楚了解数据流向,更有助于清楚编程和bug调整。我将以用户登录为例向大家介绍我所理解ssm框架的数据流向:前提:创建web项目并搭建好ssm框架,创建4个包(com.user.pojo,com.user.mapper,com.user.service,com.user.controller)...原创 2017-04-20 13:41:53 · 1729 阅读 · 0 评论 -
java基础 -- StringBuffer和StringBuilder类
StringBuffer和StringBuilder类 当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类。StringBuffer,StringBuilder继承 AbstractStringBuilder实现接口 java.io.Serializable, CharSequence 和String类不同的是,String...原创 2018-02-26 14:26:19 · 232 阅读 · 0 评论 -
java基础-- String前世今生
String 介绍String 是java中的字符串,它继承于java.io.Serializable, Comparable<String>, CharSequence。String 和 CharSequence 关系String 继承于CharSequence,也就是说String也是CharSequence类型。CharSequence是一个接口,它只包括l...原创 2018-02-26 12:03:02 · 281 阅读 · 0 评论 -
java基础--HashCode与identityHashCode底层究竟发生了什么
Object #hashCode()方法,其中@see java.lang.Object#equals(java.lang.Object);@see java.lang.System#identityHashCode;说明equals,hashCode,identityHashCode之间存在着一定联系。Object#hashCode()/** * Returns a hash cod...原创 2020-01-09 17:11:41 · 376 阅读 · 2 评论 -
java基础 -- equals与 hashCode关系详情
最近查找了一个BUG是关于equals问题,因为equals被重写了但是没有被关注,就是没想到会在这个问题上栽坑,所以就看了一下equals和hashCode的内容,总结一下避免以后不出现相同的问题!equals和hashCode方法java层面最初结构出现在Object类中Object/** * Returns a hash code value for the obj...原创 2020-01-09 17:05:31 · 228 阅读 · 0 评论 -
JVM篇--一篇文章搞定虚拟机
内存原型 虚拟机堆 所有的对象和数组都会分配到堆上 句柄池 内存缓冲池 方法区 存储已被虚拟机加载的类的信息,变量,静态变量,即时编译后代码产生的缓存 运行时常量池 String类型使用的比较多 虚拟机栈 java方法执行的内存的模型。每一个方法的调用过程,对应着栈帧从入栈到出栈的过程。 局部变量表,方法出口,动态链接,操作数栈 本地方法区 和虚拟机栈功能相似,主要服务与本地方法,类似于c方法,JNI 程序技术器 字节码解释器通过改变程序计数器的数字从而确原创 2020-10-22 11:35:07 · 189 阅读 · 0 评论 -
java基础--深入了解String源码
一、String类想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码:public final class String implements java.io.Serializable, Comparable, CharSequence{ /** * The value is used for character storage. *...转载 2020-01-16 11:18:22 · 245 阅读 · 0 评论 -
java基础 -- DBUtils使用
概述DBUtils是Java编程中的数据库操作实用工具,小巧简单实用。DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。DBUtils三个核心功能介绍QueryRunner中提供对sql语句操作的APIResultSetHandler接口,用于定义select操作后,怎样封装结果集DBUtils类,它就是一个工具类,定义了关闭资源与事务处理的方法Quer...原创 2019-10-15 17:21:18 · 322 阅读 · 0 评论 -
JVM篇--解释为什么java可以跨平台
都说java是跨平台语言?那为什么可以跨平台那。解释一下: java语言编译后,在不同平台上的机器码是不同的,比如说:在Windows上可能是0101,到了Linux系统上可能是1010了(计算机只认识1,0,2都不认识)。但是java语言有所不同,因为java编译后,生成的是中介位码(.class文件)。 中介位码并没用直接翻译成平台上的机器码,而是形成了一座桥梁,位...原创 2017-04-09 12:25:46 · 1220 阅读 · 0 评论 -
java基础--Java 8实用代码块
Java 8 新特性Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。新特性Java8 新增了非常多的特性,我们主要讨论以下几个:lLambda 表达式 − Lambda允许把函数作为一个方法的参数l方法引用 − 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法...原创 2018-03-07 15:57:41 · 818 阅读 · 0 评论 -
java基础 -- Jsp、servlet、jdbc
页面到servlet层 首先创建web项目,首先要有jsp页面以action方式(doGet,post方法)进行传输,action内写的方法内容,根据名称在web.xml中<servlet-mapping>下<url-pattern>内相同根据<servlet-name>相同找到<servlet>下的<servlet-name>找到...原创 2017-04-10 21:02:16 · 873 阅读 · 0 评论 -
java基础 -- Web文件上传实例
文件上传基本样式//文件上传表单基本形式<form action=”uploadFeil”method=”post”enctype=”multipart/form-data”> //表示表单以二进制传输数据 File:<input type=”file”name=”file”>//文件传输类型 Name:<input type...原创 2017-04-21 20:19:01 · 336 阅读 · 0 评论 -
java基础 -- jdbc流程Dome以及 踩坑ResultSet.wasNull()
JDBC笔记1.新建项目(java)JDBCDome2.新建包(lib)导入两个JAR(1)连接数据库(2)测试的JAR@Test3.新建一个包jdbc.pojoUser实体类public class User{private Longid;private Str...原创 2017-05-16 08:52:54 · 2051 阅读 · 0 评论 -
JVM篇 -- javac运行过程
Javac是将java源码语言转转化为JVM能够识别的语言,然后JVM将JVM语言转化为当前机器平台可以识别的语言。就是说,将.java文件转化为.class文件。Javac 组件以上即是javac运行过程。...原创 2017-11-07 16:32:13 · 534 阅读 · 0 评论 -
java基础 -- 编程练习题
50道JAVA基础编程练习题【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... public class Prog1{ public static void main(String[] args){ int...原创 2018-04-23 11:24:42 · 3019 阅读 · 0 评论 -
java基础 -- java概念误区对比大全
各个对比理解区别大集合 run和start的区别,synchronized 和 Lock 的异同,int 和 Integer 有什么区别,抽象类与接口的区别,myBatis中#与$的区别,error和exception的区别,Overload和Override的区别,ArrayList和Vector的区别,数组和vector的区别,run和start的区别start()...原创 2018-05-03 19:54:55 · 269 阅读 · 0 评论 -
并发篇--对并发编程的理解
刚刚经历了魔鬼式的面试,总是有面试官很高傲问道K“了解并发编程吗?”。 我是学java后台编程的,就开始将多线程的知识搬了上来,但是都是知其然,不知其所以然。 我决定将死磕一下并发编程,对于这几天的学习进行以下总结: 并发编程,为什么要并发编程? 其实是在提高资源的利用率而且让大家都有机会去共享资源,要不然不用时,资源放在那里也是白白浪费。 ...原创 2017-09-08 16:46:21 · 1417 阅读 · 0 评论 -
JVM篇 -- JDK安装目录下的所有文件说明
JDK安装目录下的文件说明1.bin该路径下存放了JDK的各种工具命令,常用的javac、java等命令就放在该路径下。基本工具这些工具是JDK的基础,用这些工具来编写应用程序。 工具名称 用途 javac.exe Java语言编译器 java.exe Java应用程...原创 2018-10-15 11:04:40 · 6513 阅读 · 0 评论 -
java基础 -- 反射深入浅出与CLass源码解析
java反射Java 反射是 Java 被视为动态语言的一个关键性质。这个机制允许程序在运行时透过 Reflection APIs 取得任何一个已知名称的 class 的内部信息,包括其modifiers(诸如 public, static 等)、superclass(例如 Object)、实现之interfaces(例如 Cloneable),也包括 fields 和 methods ...原创 2019-05-23 16:45:14 · 253 阅读 · 0 评论 -
java基础 -- Servlet简要笔记
Servlet简要Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。Servlet 可以使用javax.servlet和javax.servlet.http包创建Servlet 生命周期可被定义为从创建直到毁灭的整个过程。·Servlet 通过调用...原创 2017-05-21 13:33:36 · 270 阅读 · 0 评论