
java se
爆发的~小宇宙
github地址:https://github.com/ordinary-zhang?tab=repositories
展开
-
java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to xxx(实体类)
问题场景A项目调用B项目提供的接口返回一个Objec对象,然后把这个Object对象转化为实际的对象,然后再对这个对象处理时出现转化异常问题重现具体写法如下:调用B项目提供的接口Object data = feignService.getDataSourceByIds(idss).getData();强转List<DataSource> list = (List<DataSource>) data;通过这种方式进行强转并不能转化成想要的List对象,实际上list里原创 2020-05-22 09:28:29 · 8033 阅读 · 1 评论 -
static修饰的方法不能被重写可以被继承以及抽象类中不能有静态的抽象方法
这篇文章介绍了什么事抽象类 今天我们谈谈为什么抽象类中不能有静态的抽象方法以及static修饰的方法不能被重写可以被继承1 static修饰的方法不能被重写可以被继承我们知道static修饰的方法为静态方法,可以直接使用类名.方法名进行调用,即该方法不属于某个对象属于该类。我们根据下面的例子在看看static修饰的方法是否可以被重写:public class Static...原创 2018-07-11 10:40:29 · 5996 阅读 · 6 评论 -
java中从内存区域和类加载机制理解类变量、成员变量和局部变量加载过程
1 定义1.1 类变量归属类的变量,它是通过在定义类的属性的时,增加static修饰符,所以又称为静态变量。类变量不仅可以直接通过类名.变量名来访问,也可以通过类对象.变量来访问.1.2成员变量归属于类的实例的变量,没有经过static修饰,成员变量存在于类之内,方法和代码块之外。实例变量只能通过类对象.变量访问。 1.3局部变量是在类中方法体里面所定义的变量,不管...原创 2018-07-20 10:39:37 · 1832 阅读 · 0 评论 -
map的几种遍历方式和其他操作
/* map遍历方式1 */ public static void iterator1(){ Iterator<Map.Entry<String,String >> iterator =map.entrySet().iterator(); while (iterator.hasNext()){ ...原创 2018-08-02 09:59:14 · 263 阅读 · 0 评论 -
Java Calendar详解及常用场景
1概述本文环境JDK1.8Java Calendar是java.util.Calendar包下的常用类,项目中经常会对时间进行处理,获取时间啊或者判断是否在某个时间范围内等。我们从源码中看看Calendar:public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar>...原创 2019-04-28 22:19:05 · 2359 阅读 · 0 评论 -
Jackson中objectMapper的使用详解
环境<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </depen...原创 2019-06-10 19:57:13 · 6752 阅读 · 1 评论 -
阿里JSONObject 常用方法介绍
概述最近在进行数据解析的工作,遇到了Json和对象之间的转化等问题,使用了com.alibaba.fastjson.JSONObject阿里的解析工具进行了处理,这里记录下一些常用的方法.环境<dependencies> <dependency> <groupId>com.alibaba</groupId> <...原创 2019-07-08 21:43:28 · 4112 阅读 · 0 评论 -
java8 新特性--lambda表达式入门学习
1 概述最近在使用java做一些数据处理,发现使用java8新特性很好用,看着也很高大上,下面进行学习下.2 初体验2.1 需求:按照字符长长度进行排序原来的方式:Comparator() --> 匿名内部类 @Test public void compareLength1(){ Comparator<String> comparato...原创 2019-07-14 09:19:40 · 247 阅读 · 0 评论 -
java8 新特性--lambda表达式进阶学习
1 概述上一篇中我们对lambda表达式有了初步的认识,下面我们继续介绍什么是lambda表达式。并从真是例子出发进行学习。2 什么是lambda表达式Lambda 表达式的基础语法:Java8中引入了一个新的操作符 “->” 该操作符称为箭头操作符或 Lambda 操作符,箭头操作符将 Lambda 表达式拆分成两部分:左侧:Lambda 表达式的参数列表右侧:Lambda ...原创 2019-07-14 14:53:44 · 444 阅读 · 0 评论 -
Java8内置函数式接口的学习即意义
import org.junit.Test;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.function.Consumer;import java.util.function.Function;import java.util.function.Pr...原创 2019-07-20 11:31:55 · 340 阅读 · 0 评论 -
java8新特性-方法引用和构造器引用
package cn.zhangyu;import org.junit.Test;import java.io.PrintStream;import java.util.;import java.util.function.;/*一、方法引用:若 Lambda 体中的功能,已经有方法提供了实现,可以使用方法引用 (可以将方法引用理解为 Lambda 表达式的另外一种表现...原创 2019-07-20 11:50:35 · 215 阅读 · 0 评论 -
java8新特性---StreamApi
package cn.zhangyu;import org.junit.Test;import java.util.*;import java.util.stream.Collectors;import java.util.stream.Stream;/*一、Stream API 的操作步骤:创建 Stream中间操作(Transform) lazy...原创 2019-07-20 14:07:20 · 283 阅读 · 0 评论 -
Referenced file contains errors (http://struts.apache.org/dtds/struts-2.3.dtd). For more information
Multiple annotations found at this line:- - Referenced file contains errors (http://struts.apache.org/dtds/struts-2.3.dtd). For more information, right click on the message in the Problems View an原创 2017-03-24 11:36:55 · 1134 阅读 · 0 评论 -
java中throws关键字
throws关键字声明抛出异常,格式如下:修饰符 返回值类型 方法名(参数) throws ExcepionType1,ExceptionType2..{}注意的细节:1 如果在一个方法内部抛出了一个异常(throw new 异常类型),那么必须在方法上声明 抛出异常(throws 异常类型)。2 如果调用了一个声明抛出异常的方法,那么调用者逆序要处理异常。3 如果一个方法原创 2017-08-31 11:03:25 · 694 阅读 · 0 评论 -
一个java文件中可以有多个类
一个.java文件中可以有很多类。不过注意以下几点:1、public 权限的类只能有一个(也可以一个都没有,但最多只有1个)2、这个.java文件的文件名必须是public类的类名(一般的情况下,这里放置main方法是程序的入口。)3、若这个文件中没有public的类,则文件名随便是一个类的名字即可4、用javac 编译这个.java文件的时候,它会给每一个类生成一个.class文件转载 2017-07-07 10:26:39 · 1905 阅读 · 0 评论 -
java中的重载与重写的区别
1 重载:java中允许在一个程序中定义多个名称相同的方法,但是参数的类型和个数必须不同,这就是方法的重载。 要求: 与返回值类型无关,只须满足两个条件,一是方法名相同,二是参数个数或者类型不同。 2 重写的要求:具有相同的方法名,参数列表以及返回值类型。原创 2017-08-22 20:48:45 · 488 阅读 · 0 评论 -
java中的final关键字
final关键字可以用于 修饰类、变量和方法,它有“这是无法改变的”或者“最终”的含义,因此被final修饰的类、变量和方法具有以下特性: 1 final修饰的类不能被继承。 2 final修饰的方法不能被子类重写。 3 final修饰的变量(成员变量和局部变量)是常量,智能赋值一次。 4 final修饰的成员变量,虚拟机不会对其进行初始化,需要赋予一个初始值。原创 2017-08-29 19:39:22 · 320 阅读 · 0 评论 -
java中的自定义异常类
java中允许用户自定义异常买单时自定义异常类必须继承Exception或其子类, 例://自定义一个异常类继承Exceptionpublic class MyException extends Exception{ public Myexception(){ super(); } public MyException(String message原创 2017-08-31 11:13:57 · 2450 阅读 · 0 评论 -
java基础之Java变量命名规范
Java是一种区分字母的大小写(case-sensitive)的语言,下面谈谈Java语言中包、类、变量等的命名规范。(一)Package(包)的命名:Package的名字应该都是由一个小写单词组成,例如net.ebseries.modules。(二)Class(类)的命名:Class的名字首字母大写,通常由多个单词合成一个类名,要求每个单词的首字母也要大写,例如:转载 2017-09-19 09:23:16 · 507 阅读 · 0 评论 -
java单例设计模式--饿汉模式
在编程时我们经常遇到一些经典的问题或者需要完成某种特定需求设计模式就是针对这些问题和需求,在大量实践中总结优选的代码结构和编写风格解决问题的思考方式,设计模式就行棋谱,不同的棋局,我们需要不同的解决方式。单例模式是java中的一种设计模式,它是指在设计一个类时,需要保证整个过程只存在一个实例对象。就像我们生存的世界上只有一个月亮。饿汉模式:class Single1{ /*原创 2017-10-25 15:30:05 · 340 阅读 · 0 评论 -
对于udp和tcp的详细解读
1.网络通信协议 通过计算机网络可以使得多台计算机实现连接,位于同一个网络中的计算机进行连接和通信需要遵守一定的规则,在计算机网络中,这些连接和通信的规则被称为网络通信协议。 网络通讯的三要素:1. IP2. 端口号。3. 协议.IP地址: IP地址的本质就是一个由32位的二进制数据组成的数据。 后来别人为了方便我们记忆IP地址,就把IP地址切成了4份,每原创 2017-11-14 10:35:26 · 2405 阅读 · 0 评论 -
java中的this关键字
this关键字在程序中的四个常见的用法1 通过this关键字可以明确地去访问一个类的成员变量,解决与局部变量名称冲突的问题。 具体代码: class Person{ ing age; public Person( int age ){ this.age=age; } public int getAge(){ retrun this原创 2017-08-22 21:13:35 · 991 阅读 · 0 评论 -
java装饰着模式
这个模式花费了挺长时间,开始有点难理解,其实就是定义:动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方式达到功能的扩充显得更为灵活。设计初衷:通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势必生成很多子类,增加系统的复杂性,同时,使用继承实现功能拓展,我们必须可预见这些拓展功能,这些功能是编译时就确定了,是静态的转载 2017-11-23 11:32:21 · 279 阅读 · 0 评论 -
java中static 关键字
static关键字的作用:1 静态变量在定义一个类时,只是在描述某类事物的特征和行为,并没有产生具体的数据。只有通过new关键字创建类的实例对象后,系统才能为每个对象分配空间,存储各自的数据,有时候我们希望某些特定的数据在内存中只有一份,而且被一个类的所有实例所共享,这是java中提供了static关键字来修饰成员变量,给变量被称为静态变量。静态变量被所有实例所共享,可以使用类名.变量名来原创 2017-08-24 19:58:29 · 314 阅读 · 0 评论 -
java中的抽象类和接口
1抽象类当定义一个类时,常常需要定义一些方法来描述类的行为特性,但有时这些方法的实现方式是无法确定的。例如在Animal类中,shout方法用户表示动物的叫声,但是针对不同的动物叫声不同,因此在shout方法中无法准确的描述动物的叫声。针对这种情况,java中允许定义方法时不写方法体,即抽象方法,抽象方法必须使用abstract关键字修饰,如下: abstract oid shout(原创 2017-08-29 20:47:58 · 421 阅读 · 0 评论 -
java中的try...catch和finally
try..catch的格式:try{ //程序代码 }cafch(ExceptionType(Exception类及其子类) e){ //对ExceptionType的处理 }注意:1 如果try块中的代码出现了异常,处理之后讨try..catch代码块外面的代码可以正常执行。2 如果try块中的代码出现了异常那么try快后面的代码不能被执行了。原创 2017-08-31 10:49:57 · 298 阅读 · 0 评论 -
java中的break和continue语句
break语句: 1 当出现在switch条件语句中时,作用是终止某个case语句,跳出循环。 2 当出现在循环语句中的作用是,跳出循环,执行后面的代码。 3 出现在嵌套循环中的内层循环时,他只能跳出内层循环,如果想使用break语句跳出外层循环需要对外层循环添加标记,下面举个例子。 public class Demo{ public stat原创 2017-08-22 20:23:58 · 562 阅读 · 0 评论