基础
bingguang1993
这个作者很懒,什么都没留下…
展开
-
浅谈Java中的hashcode方法
哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率。在Java的Object类中有一个方法: 1 publicnativeinthashCode(); 根据这个方法的声明可知,该方法返回一个int类型的数值,并且是本地方法,因此在Object类中并没有给出具体的实现。 为何Object类需要这样一个...转载 2020-05-08 09:35:55 · 203 阅读 · 0 评论 -
关于protected权限的子类访问方式
声明为protected权限的成员变量和成员方法,可以被同一包中的所有类和不同包中的子类访问。但是,在实际使用中,不同包中的子类要访问父类中protected权限的成员,却不是那么随意的调用。看几个例子:首先在ch13Test包中定义父类Animal,包含一个protected权限的成员变量 i和成员方法eat():package ch13Test;public class A...转载 2020-04-24 15:57:42 · 1717 阅读 · 0 评论 -
使用CGlib实现Bean拷贝(BeanCopier)
目录BeanCopier基本用法 自定义转换器 封装BeanCopier 在做业务的时候,我们有时为了隔离变化,会将DAO查询出来的Entity,和对外提供的DTO隔离开来。大概90%的时候,它们的结构都是类似的,但是我们很不喜欢写很多冗长的b.setF1(a.getF1())这样的代码,于是我们需要BeanCopier来帮助我们。选择Cglib的BeanCopier进行Bean...转载 2020-04-20 14:59:13 · 1559 阅读 · 0 评论 -
JAVA基础中的遗漏处
1.Integer[] a= new Integer[2]; 这种如果引用会报错,数组中包装类型默认值为null;int[] a= new int[20]; 引用不会报错,初始值为0;原创 2020-02-06 17:47:08 · 193 阅读 · 0 评论 -
Java中的Iterable与Iterator详解
在Java中,我们可以对List集合进行如下几种方式的遍历:List<Integer> list = new ArrayList<>();list.add(5);list.add(23);list.add(42);for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i...转载 2019-12-26 11:40:55 · 346 阅读 · 0 评论 -
Java 迭代器Iterator的详解
为了方便的处理集合中的元素,Java中出现了一个对象,该对象提供了一些方法专门处理集合中的元素.例如删除和获取集合中的元素.该对象就叫做迭代器(Iterator).对 Collection 进行迭代的类,称其为迭代器。还是面向对象的思想,专业对象做专业的事情,迭代器就是专门取出集合元素的对象。但是该对象比较特殊,不能直接创建对象(通过new),该对象是以内部类的形式存在于每个集合类的内部。...转载 2019-12-26 11:38:30 · 1144 阅读 · 0 评论 -
Java中的static关键字解析
static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一。下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题。以下是本文的目录大纲: 一.static关键字的用途 二.static关键字的误区 三.常见的笔试面试题 若有不正之处,希望谅解...转载 2019-11-09 15:45:46 · 91 阅读 · 0 评论 -
Java中的static关键字解析
static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一。下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题。以下是本文的目录大纲: 一.static关键字的用途 二.static关键字的误区 三.常见的笔试面试题 若有不正之处,希望谅...转载 2019-06-13 15:47:12 · 102 阅读 · 0 评论 -
Java动态代理InvocationHandler和Proxy学习笔记
java动态代理机制中有两个重要的类和接口InvocationHandler(接口)和Proxy(类),这一个类Proxy和接口InvocationHandler是我们实现动态代理的核心;1.InvocationHandler接口是proxy代理实例的调用处理程序实现的一个接口,每一个proxy代理实例都有一个关联的调用处理程序;在代理实例调用方法时,方法调用被编码分派到调用处理程序的invo...转载 2019-05-28 15:02:58 · 150 阅读 · 0 评论 -
Java程序编译和运行的过程
Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程。 如下图,Java程序从源文件创建到程序运行要经过两大步骤:1、源文件由编译器编译成字节码(ByteCode) 2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言("semi-interp...转载 2019-04-09 17:25:36 · 161 阅读 · 0 评论 -
Java 反射机制
一、反射机制概述Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的所有属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法。这种在运行时动态的获取信息以及动态调用对象的方法的功能称为 Java 的反射机制。Class 类与 java.lang.reflect 类库一起对反射的概念进行了支持,该类库包含了 Field,Method,Constructor 类 (每个类...转载 2019-03-07 17:13:52 · 84 阅读 · 0 评论 -
Java接口中的方法和常量
一、接口是:接口就是给出一些没有内容的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来。接口是更加抽象的抽象的类 :抽象类里的方法可以有方法体,接口里的所有方法都没有方法体。接口体现了程序设计的多态和高内聚低偶合的设计思想。错误语法例:void aaa(){}←(注意不能有花括号)二、接口中可以有:常量:有固定的修饰符-public static final(不能用p...转载 2019-03-06 16:29:50 · 2894 阅读 · 0 评论 -
java中的final如何使用和理解
1、final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的。在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会再被扩展,那么就设计为final类。 final方法不能被子类的方法覆盖,但可以被继承。 2、final方法 如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。 使用final方法的原因有二:...转载 2019-03-06 15:59:24 · 214 阅读 · 0 评论 -
java interface 的几点默认规则
interface中定义的方法和成员变量,默认为public访问权限,且仅能为publicinterface中的成员变量默认为public static final类型,可通过接口名或者实现类名或在实现类中直接调用。一个定义接口的java文件中,interface最多只有一个public,可包含多个不含访问权限修饰词的接口,这些接口的访问权限为包内访问。不能用protected以及privat...转载 2019-03-05 19:39:18 · 672 阅读 · 0 评论 -
实体类中tostring返回值
@Override public String toString() { return new ReflectionToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE).toString(); }原创 2019-01-02 09:31:53 · 1669 阅读 · 0 评论 -
JAVA comparable的使用方法与实例
comparable :是在你要排序的类中去实现comparable接口,也就是说你得在你要排序的类中先写一个方法用来声明你想让你类中的属性根据什么规则来排序。和Comparator不同,Comparator不用去修改你要排序的类中的代码。详细的我会在第二篇文章中来介绍Comparator的使用方法。举个例子-------------------------------------------...转载 2019-06-03 17:48:47 · 571 阅读 · 0 评论 -
【java】Comparator的用法
转载请标明出处:http://blog.csdn.net/u012250875/article/details/551265311.为什么写?comparator 是javase中的接口,位于java.util包下,该接口抽象度极高,有必要掌握该接口的使用大多数文章告诉大家comparator是用来排序,但我想说排序是comparator能实现的功能之一,他不仅限于排序2.接口功能该接...转载 2019-06-04 10:34:30 · 357 阅读 · 0 评论 -
深入理解Java对象的创建过程:类的初始化与实例化
摘要:在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的。在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类构造器完成类的初始化。在类初始化过程中或初始化完毕后,根据具体情况才会去对类进行实例化。本文试图对JVM执行类初始化和实例化的过程做一个详细深入地介绍,以便从Java虚拟机的角度清晰解剖一个Java...转载 2018-07-19 10:02:43 · 187 阅读 · 0 评论 -
自定义注解详细介绍
1 注解的概念1.1 注解的官方定义首先看看官方对注解的描述:An annotation is a form of metadata, that can be added to Java source code. Classes, methods, variables, parameters and packages may be annotated. Annotations have n...转载 2019-09-27 17:51:28 · 133 阅读 · 0 评论 -
super通配符
我们前面已经讲到了泛型的继承关系:Pair<Integer>不是Pair<Number>的子类。考察下面的set方法:void set(Pair<Integer> p, Integer first, Integer last) { p.setFirst(first); p.setLast(last);}传入Pair<Int...转载 2019-08-31 11:21:40 · 403 阅读 · 0 评论 -
extends通配符
我们前面已经讲到了泛型的继承关系:Pair<Integer>不是Pair<Number>的子类。假设我们定义了Pair<T>:public class Pair<T> { ... }然后,我们又针对Pair<Number>类型写了一个静态方法,它接收的参数类型是Pair<Number>:public cl...转载 2019-08-31 11:09:58 · 3423 阅读 · 0 评论 -
Java对象的复制三种方式
1、概述在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能 会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的。例如下面程序展示的情况:class Student { private int number; public int...转载 2019-08-13 19:31:00 · 593 阅读 · 0 评论 -
枚举ENUM的tostring() valueof()name()和values()用法
从jdk5出现了枚举类后,定义一些字典值可以使用枚举类型;枚举常用的方法是values():对枚举中的常量值进行遍历;valueof(String name) :根据名称获取枚举类中定义的常量值;要求字符串跟枚举的常量名必须一致;获取枚举类中的常量的名称使用枚举对象.name()枚举类中重写了toString()方法,返回的是枚举常量的名称;其实toString()和value...转载 2019-08-02 10:12:00 · 3066 阅读 · 0 评论 -
Integer类==与equals区别与使用
大家对java的基本类型与封装类都已经很熟悉了。但是在使用中是否了解其中一些基本原理呢。下面代码对不了解基本实现的人可能会颠覆对java的认知。代码如下。public static void test(){ Integer a=1; Integer b=1; System.out.println(a==b); System.out.println...转载 2019-06-28 10:05:43 · 686 阅读 · 0 评论 -
get和post的使用场景
GET和POST两种方法都是将数据送到服务器。HTTP标准包含这两种方法是为了达到不同的目的。POST用于创建资源,资源的内容会被编入HTTP请示的内容中。例如,处理订货表单、在数据库中加入新数据行等。当请求无副作用时(如进行搜索),便可使用GET方法;当请求有副作用时(如添加数据行),则用POST方法。一个比较实际的问题是:GET方法可能会产生很长的URL,或许会超过某些浏览器与服务器对...转载 2019-07-09 10:08:36 · 2192 阅读 · 0 评论 -
session
一、Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。二、Session和Cookie的...转载 2018-12-21 09:10:38 · 103 阅读 · 0 评论 -
运行 java HelloWorld 命令,提示“错误: 找不到或无法加载主类”
https://blog.csdn.net/gaoshanliushui131/article/details/80390724转载 2018-12-06 16:06:02 · 599 阅读 · 0 评论 -
float与double的精确度与有效数字
float 实例: float f = 1.13234468f; float f2 = 11.3234468f; System.out.println(f); System.out.println(f2);结果:1.1323447 11.323447 实例: float f = 1.13234467f; float f2...原创 2018-11-29 10:10:54 · 1776 阅读 · 0 评论 -
Java对List中的实体类中的特定字段排序
public class User implements Comparable<User> {//实现此接口private String id;private String name;public User(String id, String name) { super(); this.id = id; this.name = name;}pu...原创 2018-08-02 20:47:10 · 4157 阅读 · 0 评论 -
父子类中静态代码块、非静态代码块、构造方法的执行顺序
父类静态子类静态父类非静态父类构造子类非静态子类构造原创 2018-08-05 17:45:35 · 169 阅读 · 0 评论 -
java中值传递和引用传递
1:按值传递是什么指的是在方法调用时,传递的参数是按值的拷贝传递。示例如下:[java] view plain copypublic class TempTest { private void test1(int a){ //做点事情 } public static void main(String[] args) { TempTest t = new T...转载 2018-08-04 19:45:56 · 179 阅读 · 0 评论 -
常量池、栈、堆的比较
JAVA中,有六个不同的地方可以存储数据:1.寄存器:最快的存储区,位于不同于其他存储区的地方——处理器内部。寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。2. 栈:存放基本类型的变量数据和对象的引用。位于通用RAM中,但通过它的“堆栈指针”可以从处理器哪里获得支持。堆栈指针若向下移动,则分配新的内存;若向上移动,则释放...转载 2018-08-04 16:32:38 · 134 阅读 · 0 评论 -
用例子理解Java权限修饰符(private,default,protected和public)
权限修饰用于限定对象起作用的范围,也就是,在什么地方我们能够访问到这个对象,在什么地方我们访问不到这个对象了,这里的对象是指属性、方法、类和接口。一、权限修饰符作用于属性和方法。private,default,protected和public都能作用于属性和方法。1.当private作用于属性和方法时,就只有在同一个类中能访问它们。例子如下:但是在同一包中的其它类(Person的子类或者任意其它类...转载 2018-07-15 20:38:48 · 772 阅读 · 1 评论 -
Java中的基本类型和引用类型变量的区别
基本类型:基本类型自然不用说了,它的值就是一个数字,一个字符或一个布尔值。引用类型:是一个对象类型,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。 举例说明: int a; a=250; //声明变量a的同时,系统给a分配了空间。引用类型就不是了,只给变量分配了引用空间,数据空间没有分配,因为谁都不知道数据是什么,整数,字符?我们看一...转载 2018-05-25 14:05:47 · 296 阅读 · 0 评论 -
基本数据类型以及String未初始化赋予的默认值
String 的是null;boolean falsechar '/uoooo'(null) 表现其实相当于一个长度的' 'byte(byte)0short(short)0int 0long 0Lfloat0.0fdouble 0.0d转载 2018-05-11 10:42:38 · 7212 阅读 · 2 评论 -
跳出多重for循环
A:for(int i=0;i<10;i++){ for(int n=0;n<10;n++){ if (n==5) { break A; } System.out.println("内循环"+n); } System.out.println("外循环"+i);}在最外面加个标记,例如A,然...原创 2018-04-06 20:26:24 · 194 阅读 · 0 评论 -
浅谈Arrays.asList()方法的使用
首先,该方法是将数组转化为list。有以下几点需要注意: (1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean) (2)该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新 (3)不支持add和remove方法上代码:package com.shanheyongmu.test;import java.util.Arr...转载 2018-03-19 10:28:41 · 132 阅读 · 0 评论 -
Map中取值toString()
Map<String,Object> recMap = (Map<String, Object>) this.getBaseDao().queryForObject("NGAnswer.querySumRecCount",qmap); int sumRecCount = 0;...原创 2018-03-08 14:23:00 · 6121 阅读 · 0 评论 -
异或运算规则及其应用
异或运算法则 1. a ^ b = b ^ a 2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c; 3. d = a ^ b ^ c 可以推出 a = d ^ b ^ c. 4. a ^ b ^ a = b.异或运算 1、异或是一个数学运算符。应用于逻辑运算。 2、例如:真异或假的结果是真,假异或真的结果也是真,真异或真的结果...转载 2018-08-08 20:59:48 · 2262 阅读 · 1 评论 -
关于 method (Object ... params )
看公司的平台代码,看到这样一个方法Java代码 public DataSet query(String sql, Object... para){ //opreation } Object... param 第一次看到这样的用法,难道这是公司自定义的数据类型? 在群里问了句谁知道?一个新人过来,给我做了个事例,说这是java的新特性== 变长数组。直接让我...转载 2018-09-04 17:37:48 · 2218 阅读 · 0 评论