1、泛型的概念
所谓的泛型就是在类定义时,不为类中的属性和方法指定数据类型,而是在类对象创建时为其指定相应的数据类型。
例如之前使用的List list = new ArrayList<>();其中就是泛型。
2、为什么使用泛型
例子:要求定义一个Point点类,该类中的属性有x坐标和y坐标。
要求 :x和y的值都为整数类型;x和y的值都为小数类型;x和y的值都为字符串类型;
使用Object定义属性类型
public class Point {
private Object x;
private Object y;
public void show(){
System.out.println("x坐标:"+x+";y坐标:"+y);
}
public Point(Object x, Object y) {
this.x = x;
this.y = y;
}
public Point() {
}
public Object getX() {
return x;
}
public void setX(Object x) {
this.x = x;
}
public Object getY() {
return y;
}
public void setY(Object y) {
this.y = y;
}
}
public class TestPoint {
public static void main(String[] args) {
Point point = new Point(12,23);
point.show();
Point point1 = new Point(23.1,45.1);
point1.show();
Point point2 = new Point("北纬21度","西经70度");
point2.show();
}
}
但是我们会发现一个问题,如果我们传入的两个参数一个为整数,一个为字符串也是可以正常运行,也不会报错,但是与我们的设计要求不符合,就出现了数据类型安全问题,这个问题我们可以使用泛型解决。
将Object类型写成使用泛型定义,这里的T只是一个标识
public class Point {
private T x;
private T y;
public void show(){
System.out.println("x坐标:"+x+";y坐标:"+y);
}
public Point(T x, T y) {
this.x = x;
this.y = y;
}
public Point() {
}
public T getX() {
return x;
}
public void setX(T x) {
this.x = x;
}
public T getY() {
return y;
}
public void setY(T y) {
this.y = y;
}
}
public class TestPoint {
public static void main(String[] args) {
Point point = new Point<>(12,23);
point.show();
Point point1 = new Point<>(23.1,45.1);
point1.show();
Point point2 = new Point<>("北纬21度","西经70度");
point2.show();
//现在如果两个参数不是相同的类型就会报错,解决了数据类型安全问题
//Point point3 = new Point<>(21,21.98);
}
}
注意:这里的泛型的类型必须为引用类型,不能为基本类型。
3、定义泛型
泛型可以定义在类上,接口上,方法上。称为泛型类,泛型接口,泛型方法。
泛型解决数据类型的安全性问题的原理是在类声明时通过一个标识表示类中某个属性的数据类型或者是方法的返回值类型或者是参数类型,这样在类声明或者实例化时只需要指定好需要的类型即可。
public class 类名<泛型标志,泛型标志....>{
//类成员 }
(1)定义泛型类
public class Test01 {
public static void main(String[] args) {
Info info = new Info();
info.setA(1);
info.setB("我是第二个参数");
System.out.println(info);
}
}
class Info{
private T a;
private K b;
public Info() {
}
public Info(T a, K b) {
this.a = a;
this.b = b;
}
public T getA() {
return a;
}
public void setA(T a) {
this.a = a;
}
public K getB() {
return b;
}
public void setB(K b) {
this.b = b;
}
@Override
public String toString() {
return "info{" +
"a=" + a +
", b=" + b +
'}';
}
}
通配符
在开发中对象的引用传递 是最常见的,但是如果在泛型类的操作中,在进行引用传递时泛型类型必须匹配才可以传递,否则是无法传递的 。如果想传递,可以定义泛型为?通配符。
public class Test04 {
public static void main(String[] args) {
Myself myself = new Myself<>("张三");
fun(myself);
}
//该方法的参数为Myself而且它的泛型为String类型
public static void fun(Myself myself){
myself.show();
}
}
class Myself{
private T name;
public void show(){
System.out.println("name:"+name);
}
public Myself() {
}
public Myself(T name) {
this.name = name;
}
public T getName() {
return name;
}
public void setName(T name) {
this.name = name;
}
@Override
public String toString() {
return "Myself{" +
"name=" + name +
'}';
}
}
受限泛型
在引用传递中,在泛型操作中也可以设置一个泛型对象的范围上限 和范围下限 。范围上限使用extends 关键字声明,表示参数化的类型可能是所指定的类型或者是此类型的子类,而范围下限使用super 进行声明,表示参数化的类型可能是所指定的类型或者此类型的父类型。
[设置上限] 声明对象: 类名称 对象名称; 定义类: [访问权限] 类名称<泛型标识 extends 类>{}
[设置下限] 声明对象: 类名称 对象名称;不能给类设置下限
public class Test02 {
public static void main(String[] args) {
People people1 = new People<>(1);
fun1(people1);
//fun2(people1);
People people2 = new People<>(2);
fun1(people2);
fun2(people2);
People people3 = new People<>("123");
//fun1(people3);
fun2(people3);
//People2 people4 = new People2("123");
}
/*people的泛型为number的子类或者本身*/
public static void fun1(People people){
people.show();
}
/*people的泛型为number的父类或者本身*/
public static void fun2(People people){
people.show();
}
}
class People{
private T a;
public void show(){
System.out.println("a:"+a);
}
public People() {
}
public People(T a) {
this.a = a;
}
public T getA() {
return a;
}
public void setA(T a) {
this.a = a;
}
}
class People2{
private T a;
public void show(){
System.out.println("a:"+a);
}
public People2() {
}
public People2(T a) {
this.a = a;
}
public T getA() {
return a;
}
public void setA(T a) {
this.a = a;
}
}
(2)泛型接口
在jdk1.5之后泛型也可以定义在接口上了。
public interface 接口名<泛型标志,泛型标志....>{ //静态常量 //抽象方法。 }
public class Test05 {
public static void main(String[] args) {
Mouse mouse = new Mouse<>();
String fun = mouse.fun();
System.out.println("鼠标的方法:"+fun);
Upan upan = new Upan();
String fun1 = upan.fun();
System.out.println("U盘的方法:"+fun1);
}
}
//泛型接口
interface USB {
//接口中定义的常量名全部大写
public static final String NAME="USB";
//抽象方法
T fun();
}
//子类在实现接口时,确定泛型类型
class Upan implements USB{
@Override
public String fun() {
return "我是U盘";
}
}
//子类也实现泛型和父类名相同的泛型
class Mouse implements USB{
@Override
public T fun() {
return null;
}
}
(3)泛型方法
泛型方法的定义与其所在的类是否是泛型类是没有任何关系的,所在的类可以是泛型类,也可以不是泛型类。
[访问权限] ==<泛型标识>== 泛型标识 方法名称(泛型标识 参数名称)
public class Test06 {
public static void main(String[] args) {
String eat = Pet.eat("骨头");
System.out.println(eat);
}
}
class Pet{
//定义泛型方法和该方法所在的类是不是泛型类没有关系
public static T eat(T t){
return t;
}
}
你可能感兴趣的:(Java高级,java,开发语言)
Spring Boot:Java开发的神奇加速器(二)
小周不想卷
艾思科蓝学术会议投稿 spring boot
目录四、深入理解SpringBoot配置4.1配置文件类型4.2常用配置项4.3自定义配置五、数据访问与持久化5.1集成SpringDataJPA5.2编写数据访问层代码5.3事务管理四、深入理解SpringBoot配置4.1配置文件类型在SpringBoot应用中,主要有两种配置文件类型,即application.properties和application.yml(或application.y
Jenkins 拉取 Git 分支代码问题排查与解决指南
码农阿豪@新空间
包罗万象 疑难杂症解决方案 git 运维 jenkins
个人名片作者简介:java领域优质创作者个人主页:码农阿豪工作室:新空间代码工作室(提供各种软件服务)个人邮箱:[2435024119@qq.com]个人微信:15279484656个人导航网站:www.forff.top座右铭:总有人要赢。为什么不能是我呢?专栏导航:码农阿豪系列专栏导航面试专栏:收集了java相关高频面试题,面试实战总结️Spring5系列专栏:整理了Spring5重要知识点与
如何发起http的请求,在系统中集成
红豆和绿豆
java http 网络协议 网络
在Java中发起HTTP请求,有多种开源框架可供选择。以下是一些常用的开源框架及其特点:1.ApacheHttpClientApacheHttpClient是一个功能强大的HTTP客户端库,支持同步和异步请求,广泛用于各种Java应用。2.OkHttpOkHttp是一个高效的HTTP客户端,支持HTTP/2和WebSocket,具有自动重试和恢复功能。3.UniRestUniRest是一个简单易用
创建全局异常处理器(Global Exception Processor)
易安杰
java 开发语言 jvm spring boot
先来了解一下什么是异常?在Java程序中,异常(Exception)是指在程序执行过程中发生的非正常情况,它打断了正常的指令流;Java中的异常处理是一种用于处理程序中错误和异常情况的一种机制。如上图所示异常主要分为两类,包括Error和Exception,两种异常有一个共同的父类是Throwable;在Exception中又分为RuntimeException(运行时异常)和CheckedExc
【LeetCode Hot100】除自身以外数组的乘积|左右乘积列表,Java实现!图解+代码,小白也能秒懂!
AllowM
算法hot100 leetcode java 算法
[LeetCodeHot100]除自身以外数组的乘积|左右乘积列表,Java实现!图解+代码,小白也能秒懂!✏️本文对应题目链接:除自身以外数组的乘积题目描述给你一个整数数组nums,返回数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据保证数组之中任意元素的全部前缀元素和后缀的乘积都在32位整数范围内。请不要使用除法,且在O(n)时间复杂度内完成
AGP 8.0 适配 ---- jvm target compatibility
zhuzhumouse
android java gradle
基础知识科普Android工程的GradleJDK,以及代码里面配置的jvmTarget有什么区别?这是两个完全不同的概念:GradleJDK:指的是用于运行Gradle构建系统的JavaDevelopmentKit版本。Gradle是Android项目的构建工具,它负责处理项目的编译、打包、依赖管理等任务。GradleJDK的选择决定了在构建过程中使用的Java版本。jvmTarget:是jav
Java取绝对值
web15085181368
java
在Java中可以使用Math.abs()方法来方便的进行绝对值计算,例如:intvalue=Math.abs(-90);System.out.println(value);//90publicstaticintabs(inta){return(a<0)?-a:a;}当输入的是正数的时候直接返回即可,当是负数的时候返回它的相反数即可。使用三目运算符可以使用一行代码就能做到。如果需要输入Double或
RxJava 和Kotlin协程(Coroutines)
Marblog
Java Android rxjava kotlin android
RxJava和协程(Coroutines)都是处理异步编程和并发任务的强大工具,但它们的设计理念、使用方式和应用场景有所不同。以下是它们之间的主要区别:1.设计理念与核心概念RxJava:基于响应式流:RxJava是基于反应式编程(ReactiveProgramming)理念的库,它主要用于处理异步数据流和事件流。RxJava提供了丰富的操作符来对数据流进行组合、变换、过滤、错误处理等操作。数据流
强势破局:基于Java的开源能源管理系统源码+能碳管理系统+能源管理系统+能源管理平台:智碳能源管理系统,我为地球降一度!开启智慧节能新纪元,让能源管理“碳”索未来!可在线体验
智碳未来科技有限公司
能源 开源 java spring boot 物联网
先上干货!墙内仓库地址(码云):https://gitee.com/ustcyc/zhitan-ems已同步更新到github仓库:https://github.com/Andy-Yin/zhitan-ems在当今社会,能源管理已经成为一个不可忽视的重要议题。随着科技的不断发展,人们对能源的需求也日益增长,而能源的消耗对地球环境造成的影响也日益显现。为了更好地管理和利用能源资源,推动绿色可持续发展
Ubuntu 在/etc/profile中配置环境变量后,开启新终端窗口环境变量失效问题解决(非root用户)
深度视觉机器
Ubuntu20 环境变量失效问题到此解决。
最近在使用ubuntu系统的过程中用非root用户登录,发现在安装完jdk并添加相关环境变量,java-version可以正常显示,但当我开启一个新的终端的时候,这个命令就失效了,网上查了一下原因,是需要修改当前登录用户的.bashrc文件中添加环境变量才可永久生效,下面来说明几种解决方案。1、临时解决方案(非root用户)临时解决方案就是重新加载/etc/profile文件,执行以下命令:$so
Mac Java 使用 tesseract 进行 ORC 识别
nukix
macos java macos java 开发语言 ORC
在Java开发中使用图片转文字时,难免会遇到问题,比如我使用Mac(M1芯片)系统进行开发,就出现报错。博主博客https://blog.uso6.comhttps://blog.csdn.net/dxk539687357一、直接使用1.使用brew进行安装brewinstalltesseract如果是其他系统的,建议看官方文档进行安装。2.查看版本nukix@nukixPC~%tesseract
音频采集(VUE3+JAVA)
a26637896
音视频 java javascript
vue部分代码xx.vueimportRecorderfrom'./Recorder.js';exportdefault{data(){return{mediaStream:null,recorder:null,isRecording:false,audioChunks:[],vadInterval:null//新增:用于存储声音活动检测的间隔ID};},asyncmounted(){this.m
渗透测试工具包 开源安全测试工具 网络安全工具_网络安全渗透测试工具(1)
2401_84254011
程序员 安全 开源 测试工具
hackUtils-它是一个用于渗透测试和网络安全研究的黑客工具包,渗透以及web攻击脚本。msf框架:pocsscan攻击框架Pocsuite攻击框架Beebeeto攻击框架漏洞POC&EXP-ExploitDB官方git版本。php漏洞代码分析ysoserial-JAVA反序列化POC生成工具:JavaUnserializeExploits-JAVA反序列化EXP。JenkinsCommonC
Java基础专项复习7——事务
Ttang23
java 开发语言
Java基础专项复习系列目录1、Java基础专项复习1——函数关键字static-CSDN博客2、Java基础专项复习2——集合-CSDN博客3、Java基础专项复习3——Map集合-CSDN博客4、Java基础专项复习4——IO流-CSDN博客5、Java基础专项复习5——异常-CSDN博客6、Java基础专项复习6——多线程-CSDN博客文章目录目录Java基础专项复习系列目录文章目录1.1事
Android Java创建ViewModel新api
debug_cat
Android应用层开发 android java leetcode
背景项目使用Java,创建ViewModel发现之前旧api不管用了。不要问为什么项目还要用Java,别问。老项目不让升级。ViewModel创建新方式新方式是因为依赖新版本库,其实用旧版本库就回到旧方式了。依赖:deflifecycle_version="2.5.0"//ViewModelimplementation"androidx.lifecycle:lifecycle-viewmodel:
【Spring】Spring的模块架构与生态圈—Spring Boot、Spring Cloud与Spring Security
AI人H哥会Java
JAVA java spring 后端 开发语言 spring boot spring cloud
随着互联网的发展,企业对快速开发和高可用性的需求不断增加,Spring生态系统(包括SpringBoot、SpringCloud和SpringSecurity)应运而生,为Java开发提供了强大的支持。在实际应用中,SpringBoot使得开发者能够快速构建独立的、生产级的Spring应用;SpringCloud则为微服务架构提供了完整的解决方案;而SpringSecurity则为应用提供了安全保
Python学习心得体会
yuetouwen
python windows 开发语言
一、引言Python作为一种高级编程语言,以其简洁性、易读性和强大的功能在当今的编程领域中占据着重要地位。在学习Python的过程中,我不仅掌握了一种新的编程工具,更深入地理解了编程的思维方式和逻辑结构。二、语法基础与编程环境搭建Python的语法简洁明了,相较于其他编程语言,其代码更接近自然语言。例如,使用缩进来表示代码块,而不是像C或Java那样使用大括号。在学习初期,我快速掌握了变量的定义、
【Java】—— 包装类&泛型
两袖清风998
数据结构与算法 java 开发语言
一、包装类(WrapperClass)1、包装类的定义在Java中数据分为两大类:基础数据类型(内置数据类型)引用类型其中基础数据类型(byteintlongdoublebooleanchar......)和C语言接近是早期为了吸引C语言的程序员。后续Java有引入了一系列更进阶的语法机制,而这些机制又依赖于引用类型。Java希望把所有的类型统一成Object体系,让基础数据类型也可以使用equa
JSP(学习自用)
文城521
JAVA实训 java 学习 html 前端
一、本质JSP解析后就是Servlet类的java代码。二、jsp内嵌java代码1、声明脚本用于声明属性和方法。2、运行脚本相当于在service方法中写代码3、打印脚本用于打印上面两个脚本内声明的变量结果啥的。//页面会显示张三三、jsp内置对象1、request代表客户端的请求。2、response代表服务端的响应。3、session代表客户端当前会话。4、application代表整个We
Effective Java学习笔记
lucky。
Java学习 java
静态工厂方法考虑使用静态工厂方法代替构造静态工厂方法与构造器不同的第一优势在于,它们有名字第二个优势,不用每次被调用时都创建新对象第三个优势,可以返回原返回类型的子类第四个优势,在创建带泛型的实例时,能使代码变得简洁(jdk1.8已经解决)除此之外可以有多个参数相同但名称不同的工厂方法可以减少对外暴露的属性多了一层控制,方便统一修改Java中,获得一个类实例最简单的方法就是使用new关键字,通过构
java 代码走查_代码走查如何保证软件质量
weixin_40006965
java 代码走查
目的代码走查的好处非常多,第一个是让新同学快速熟悉代码并了解系统。第二个是做资损防控的事前检查,在事前规避引发线上故障。第三个是通过一起讨论和审查,加强团队代码阅读和编写能力,让大家编写出优秀的代码。代码走查的优点非常多,但是最核心的还是希望通过代码走查提前发现问题并解决问题。所以基于以上目的,代码走查不是为了找到代码写的差的程序员加以批评,不是为了找到差的代码,而是一起发现问题共同成长,所以对于
【Java基础-47.1】Java中通过继承Thread类创建线程
AllenBright
# Java基础 java 开发语言
在Java中,多线程编程是实现并发操作的重要手段之一。Java提供了多种创建线程的方式,其中一种是通过继承Thread类来创建线程。本文将详细介绍如何通过继承Thread类创建线程,并探讨其使用场景、优缺点以及注意事项。1.什么是Thread类?Thread类是Java中用于表示线程的核心类。它位于java.lang包中,提供了线程的创建、启动、暂停、中断等操作。每个Thread对象都代表一个独立
java代码走查_java代码开发完成后,代码走查规范
游凯超
java代码走查
代码走查注意事项:1、不变的值,尽量写个常量类2、尽量使用if{}else,不要一直if去判断3、减少循环调用方法查询数据库4、dao层尽量不要用逻辑,尽量在service里写业务逻辑5、金额使用Bigdecimal类型的,0.00这种格式靠右显示6、iframe的弹框,要放到js里,可以缓存,放到jsp里每次都需要加载。7、ajax对应success对应一个error异常,尽量用error,网络
java 代码走查_java代码走查计划书
沙鸥123
java 代码走查
《java代码走查计划书》由会员分享,可在线阅读,更多相关《java代码走查计划书(8页珍藏版)》请在人人文库网上搜索。1、WATERCorporation代码走查计划书Version2.0XXX2012/3/20文档修改记录版本号主要作者修改记录完成日期1.0无2010-03-181.1待评审物2010-03-181.2评审流程2010-03-192.0人员分工、评审流程2010-03-20目录
Arthas使用使用方法
小秋蜀黍
大容量性能问题分析 性能优化
一、Arthas简介可以用来快速定位java程序使用中的问题,查看程序运行过程中的各种信息。相对于之前jvm命令方式的定位方式,主要有以下特性:1)对源程序无侵入性,不需要重启或修改源码2)交互式命令行操作方式,方便使用3)功能丰富,对jvm各种性能,class信息等都能做到分析二、安装启动1、将下载的软件传入需要分析的服务容器中解压,然后执行java-jararthas-boot.jar命令运行
C# dynamic 关键字 使用详解
鲤籽鲲
C# c# windows 开发语言
总目录前言dynamic是C#4.0引入的关键字,用于声明动态类型,允许在运行时解析类型和成员,而非编译时。它主要设计用于简化与动态语言(如Python、JavaScript)的交互、处理未知结构的数据(如JSON、XML)以及减少反射代码的复杂性。一、基本概念动态类型解析:编译器不会对dynamic变量进行类型检查,所有操作(方法调用、属性访问)在运行时解析。底层机制:由DLR(DynamicL
JavaWEB学习笔记2(自用,自整理)
发际线码农
web java
笔记根据“尚硅谷”JavaWEB教学视频以及老师课后学习资料整理,若有错误以老师为准。笔记是博主一字一字亲手码出来的,由于自己还是学习阶段,本质还是在模仿的基础上加入自己的拙见。所以笔记会有很多地方和老师的资料有雷同,如有侵权,请大胆联系博主删除!!!因为自己的原因看到剩100集左右没有继续看下去,笔记存放时间有点久,有的图失效了,如果之后又时间博主尽量补上这个坑。JavaWEB学习笔记7、Ser
第三章:前端技术栈与性能关联
Young soul2
前端基础 性能优化
前端开发技术栈主要由HTML、CSS和JavaScript构成,它们相互协作,共同决定了网页的呈现效果和性能表现。了解它们与性能的关联,能帮助开发者更有针对性地进行优化。3.1HTML与性能3.1.1语义化标签的重要性HTML语义化标签,如、、、、、等,不仅能让代码结构更清晰,便于维护和团队协作,还对性能优化有积极作用。语义化标签可以帮助浏览器更好地理解页面结构,从而更高效地进行渲染。例如,一个新
「学编程常见问题」学Java要准备什么配置的电脑?
测试小扎
自学 java 编程 java 开发语言 自学编程
学Java对电脑的配置没有特别高的要求,不需要买配置特别好的电脑,普通PC机可以参考下方的这个配置哦!操作系统:Win10或Mac,优先Win10内存:推荐16G及以上,8G也OK,越大越好CPU:Inteli5及以上,AMD谨慎考虑硬盘:512G及以上,含固态硬盘优先品牌:windows系统优先选择Thinkpad系列,联想,华为等其他品牌也可以考虑注意:购机初始化系统时,用户名建议用英文,不要
SpringCloud常见面试题
百百味
spring cloud java
1.SpringCloud什么是微服务?谈谈你对微服务的理解?微服务以前所有的代码都放在同一个工程中、部署在同一个服务器、同一项目的不同模块不同功能互相抢占资源,微服务就是将工程根据不同的业务规则拆分成微服务,部署在不同的服务器上,服务之间相互调用,java中有的微服务有dubbo(只能用来做微服务)、springcloud(提供了服务的发现、断路器等)。微服务的特点:按业务划分为一个独立运行的程
统一思想认识
永夜-极光
思想
1.统一思想认识的基础,才能有的放矢
原因:
总有一种描述事物的方式最贴近本质,最容易让人理解.
如何让教育更轻松,在于找到最适合学生的方式.
难点在于,如何模拟对方的思维基础选择合适的方式. &
Joda Time使用笔记
bylijinnan
java joda time
Joda Time的介绍可以参考这篇文章:
http://www.ibm.com/developerworks/cn/java/j-jodatime.html
工作中也常常用到Joda Time,为了避免每次使用都查API,记录一下常用的用法:
/**
* DateTime变化(增减)
*/
@Tes
FileUtils API
eksliang
FileUtils FileUtils API
转载请出自出处:http://eksliang.iteye.com/blog/2217374 一、概述
这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。 非常的好用。
各种新兴技术
不懂事的小屁孩
技术
1:gradle Gradle 是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。
现在构建系统常用到maven工具,现在有更容易上手的gradle,
搭建java环境:
http://www.ibm.com/developerworks/cn/opensource/os-cn-gradle/
搭建android环境:
http://m
tomcat6的https双向认证
酷的飞上天空
tomcat6
1.生成服务器端证书
keytool -genkey -keyalg RSA -dname "cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn" -alias server -keypass password -keystore server.jks -storepass password -validity 36
托管虚拟桌面市场势不可挡
蓝儿唯美
用户还需要冗余的数据中心,dinCloud的高级副总裁兼首席营销官Ali Din指出。该公司转售一个MSP可以让用户登录并管理和提供服务的用于DaaS的云自动化控制台,提供服务或者MSP也可以自己来控制。
在某些情况下,MSP会在dinCloud的云服务上进行服务分层,如监控和补丁管理。
MSP的利润空间将根据其参与的程度而有所不同,Din说。
“我们有一些合作伙伴负责将我们推荐给客户作为个
spring学习——xml文件的配置
a-john
spring
在Spring的学习中,对于其xml文件的配置是必不可少的。在Spring的多种装配Bean的方式中,采用XML配置也是最常见的。以下是一个简单的XML配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.or
HDU 4342 History repeat itself 模拟
aijuans
模拟
来源:http://acm.hdu.edu.cn/showproblem.php?pid=4342
题意:首先让求第几个非平方数,然后求从1到该数之间的每个sqrt(i)的下取整的和。
思路:一个简单的模拟题目,但是由于数据范围大,需要用__int64。我们可以首先把平方数筛选出来,假如让求第n个非平方数的话,看n前面有多少个平方数,假设有x个,则第n个非平方数就是n+x。注意两种特殊情况,即
java中最常用jar包的用途
asia007
java
java中最常用jar包的用途
jar包用途axis.jarSOAP引擎包commons-discovery-0.2.jar用来发现、查找和实现可插入式接口,提供一些一般类实例化、单件的生命周期管理的常用方法.jaxrpc.jarAxis运行所需要的组件包saaj.jar创建到端点的点到点连接的方法、创建并处理SOAP消息和附件的方法,以及接收和处理SOAP错误的方法. w
ajax获取Struts框架中的json编码异常和Struts中的主控制器异常的解决办法
百合不是茶
js json编码返回异常
一:ajax获取自定义Struts框架中的json编码 出现以下 问题:
1,强制flush输出 json编码打印在首页
2, 不强制flush js会解析json 打印出来的是错误的jsp页面 却没有跳转到错误页面
3, ajax中的dataType的json 改为text 会
JUnit使用的设计模式
bijian1013
java 设计模式 JUnit
JUnit源代码涉及使用了大量设计模式
1、模板方法模式(Template Method)
定义一个操作中的算法骨架,而将一些步骤延伸到子类中去,使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。这里需要复用的是算法的结构,也就是步骤,而步骤的实现可以在子类中完成。
Linux常用命令(摘录)
sunjing
crond chkconfig
chkconfig --list 查看linux所有服务
chkconfig --add servicename 添加linux服务
netstat -apn | grep 8080 查看端口占用
env 查看所有环境变量
echo $JAVA_HOME 查看JAVA_HOME环境变量
安装编译器
yum install -y gcc
【Hadoop一】Hadoop伪集群环境搭建
bit1129
hadoop
结合网上多份文档,不断反复的修正hadoop启动和运行过程中出现的问题,终于把Hadoop2.5.2伪分布式安装起来,跑通了wordcount例子。Hadoop的安装复杂性的体现之一是,Hadoop的安装文档非常多,但是能一个文档走下来的少之又少,尤其是Hadoop不同版本的配置差异非常的大。Hadoop2.5.2于前两天发布,但是它的配置跟2.5.0,2.5.1没有分别。 &nb
Anychart图表系列五之事件监听
白糖_
chart
创建图表事件监听非常简单:首先是通过addEventListener('监听类型',js监听方法)添加事件监听,然后在js监听方法中定义具体监听逻辑。
以钻取操作为例,当用户点击图表某一个point的时候弹出point的name和value,代码如下:
<script>
//创建AnyChart
var chart = new AnyChart();
//添加钻取操作&quo
Web前端相关段子
braveCS
web前端
Web标准:结构、样式和行为分离
使用语义化标签
0)标签的语义:使用有良好语义的标签,能够很好地实现自我解释,方便搜索引擎理解网页结构,抓取重要内容。去样式后也会根据浏览器的默认样式很好的组织网页内容,具有很好的可读性,从而实现对特殊终端的兼容。
1)div和span是没有语义的:只是分别用作块级元素和行内元素的区域分隔符。当页面内标签无法满足设计需求时,才会适当添加div
编程之美-24点游戏
bylijinnan
编程之美
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
public class PointGame {
/**编程之美
主页面子页面传值总结
chengxuyuancsdn
总结
1、showModalDialog
returnValue是javascript中html的window对象的属性,目的是返回窗口值,当用window.showModalDialog函数打开一个IE的模式窗口时,用于返回窗口的值
主界面
var sonValue=window.showModalDialog("son.jsp");
子界面
window.retu
[网络与经济]互联网+的含义
comsci
互联网+
互联网+后面是一个人的名字 = 网络控制系统
互联网+你的名字 = 网络个人数据库
每日提示:如果人觉得不舒服,千万不要外出到处走动,就呆在床上,玩玩手游,更不能够去开车,现在交通状况不
oracle 创建视图 with check option
daizj
视图 view oralce
我们来看下面的例子:
create or replace view testview
as
select empno,ename from emp where ename like ‘M%’
with check option;
这里我们创建了一个视图,并使用了with check option来限制了视图。 然后我们来看一下视图包含的结果:
select * from testv
ToastPlugin插件在cordova3.3下使用
dibov
Cordova
自己开发的Todos应用,想实现“
再按一次返回键退出程序 ”的功能,采用网上的ToastPlugins插件,发现代码或文章基本都是老版本,运行问题比较多。折腾了好久才弄好。下面吧基于cordova3.3下的ToastPlugins相关代码共享。
ToastPlugin.java
package&nbs
C语言22个系统函数
dcj3sjt126com
c function
C语言系统函数一、数学函数下列函数存放在math.h头文件中Double floor(double num) 求出不大于num的最大数。Double fmod(x, y) 求整数x/y的余数。Double frexp(num, exp); double num; int *exp; 将num分为数字部分(尾数)x和 以2位的指数部分n,即num=x*2n,指数n存放在exp指向的变量中,返回x。D
开发一个类的流程
dcj3sjt126com
开发
本人近日根据自己的开发经验总结了一个类的开发流程。这个流程适用于单独开发的构件,并不适用于对一个项目中的系统对象开发。开发出的类可以存入私人类库,供以后复用。
以下是开发流程:
1. 明确类的功能,抽象出类的大概结构
2. 初步设想类的接口
3. 类名设计(驼峰式命名)
4. 属性设置(权限设置)
判断某些变量是否有必要作为成员属
java 并发
shuizhaosi888
java 并发
能够写出高伸缩性的并发是一门艺术
在JAVA SE5中新增了3个包
java.util.concurrent
java.util.concurrent.atomic
java.util.concurrent.locks
在java的内存模型中,类的实例字段、静态字段和构成数组的对象元素都会被多个线程所共享,局部变量与方法参数都是线程私有的,不会被共享。
Spring Security(11)——匿名认证
234390216
Spring Security ROLE_ANNOYMOUS 匿名
匿名认证
目录
1.1 配置
1.2 AuthenticationTrustResolver
对于匿名访问的用户,Spring Security支持为其建立一个匿名的AnonymousAuthenticat
NODEJS项目实践0.2[ express,ajax通信...]
逐行分析JS源代码
Ajax nodejs express
一、前言
通过上节学习,我们已经 ubuntu系统搭建了一个可以访问的nodejs系统,并做了nginx转发。本节原要做web端服务 及 mongodb的存取,但写着写着,web端就
在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值
lhbthanks
java html struts checkbox
第一种方法:获取结果String类型
在 Action 中获得的是一个 String 型数据,每一个被选中的 checkbox 的 value 被拼接在一起,每个值之间以逗号隔开(,)。
所以在 Action 中定义一个跟 checkbox 的 name 同名的属性来接收这些被选中的 checkbox 的 value 即可。
以下是实现的代码:
前台 HTML 代码:
003.Kafka基本概念
nweiren
hadoop kafka
Kafka基本概念:Topic、Partition、Message、Producer、Broker、Consumer。 Topic: 消息源(Message)的分类。 Partition: Topic物理上的分组,一
Linux环境下安装JDK
roadrunners
jdk linux
1、准备工作
创建JDK的安装目录:
mkdir -p /usr/java/
下载JDK,找到适合自己系统的JDK版本进行下载:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
把JDK安装包下载到/usr/java/目录,然后进行解压:
tar -zxvf jre-7
Linux忘记root密码的解决思路
tomcat_oracle
linux
1:使用同版本的linux启动系统,chroot到忘记密码的根分区passwd改密码 2:grub启动菜单中加入init=/bin/bash进入系统,不过这时挂载的是只读分区。根据系统的分区情况进一步判断. 3: grub启动菜单中加入 single以单用户进入系统. 4:用以上方法mount到根分区把/etc/passwd中的root密码去除 例如: ro
跨浏览器 HTML5 postMessage 方法以及 message 事件模拟实现
xueyou
jsonp jquery 框架 UI html5
postMessage 是 HTML5 新方法,它可以实现跨域窗口之间通讯。到目前为止,只有 IE8+, Firefox 3, Opera 9, Chrome 3和 Safari 4 支持,而本篇文章主要讲述 postMessage 方法与 message 事件跨浏览器实现。postMessage 方法 JSONP 技术不一样,前者是前端擅长跨域文档数据即时通讯,后者擅长针对跨域服务端数据通讯,p