为您找到搜索结果:8593个
java二维字符数组的输入
java二维字符数组输入的方法有很多,这里简单介绍一种:importjava.util.Scanner;publicclasstest{publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);intn=scan.nextInt();//n行intm=scan.nextInt();//m列String[]temp=newString[n+1];//字符串数组做中间变量for(inti=0;i<n;i++){temp[i]=scan.next();}char[][]p=newchar[n][m];//temp字符串数组转为二维数组p[n][m];for(inti=0;i<n;i++){for(intj=0;j<m;j++){p[i][j]=temp[i].charAt(j);System.out.println(p[i][j]);}}}}...
Java 性能测试的四项原则
绝大数的开发人员在日常工作过程中都会或多或少的遇见过性能问题,本文旨在阐述性能测试的理论,从而为性能分析和开发人员做指导。本文对于那些刚刚接触性能调优和正在解决问题的开发人员也能提供一些启发性的思路。 计算机软件作为人类智慧的结晶,帮助我们在这个日新月异的社会中完成了大量工作。我们的日常生活中已经离不开软件,玲琅满目的软件已经渗透到了我们生活的各个角落,令我们目不暇接。我们都希望软件变得更好,运行处理的速度更快,在当今硬件性能突飞猛进的变革中,软件性能的提升也是一个永不落伍的话题。软件性能测试的实质,是从哲学的角度看问题,找出其内在联系,因果关系,形式内容关系,重叠关系等等。假如这些关系我们在分析过程中理清了,那么性能测试问题就会变得迎刃而解。在软件开发过程中,性能测试往往在开发前期容易被忽略。直到有一天问题暴露后,开发人员被迫的直面这个问题,大多数情况下,这是令开发人员感觉到非常痛苦事情。所以在软件开发前期以及开发过程中性能测试的考量是必要的,那么具备相应理论知识和实践方法也是一个优秀工程师所应当具备的素养,这里我们概括有四项原则,这些原则可以帮助开发人员丰富、充实测试理论,系...
深入理解Java的接口和抽象类
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别 若有不正之处,请多多谅解并欢迎批评指正,不甚感激。 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/3811437.html 在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:1abstract void fun(); 抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。 下面要注意一个问题:在《JAVA编程思...
JAVA设计模式总结之六大设计原则
从今年的七月份开始学习设计模式到9月底,设计模式全部学完了,在学习期间,总共过了两篇;第一篇看完设计模式后,感觉只是脑子里面有印象但无法言语。于是决定在看一篇,到9月份第二篇设计模式总于看完了,这一篇看完,脑子里面已经能够对绝大多数的设计模式能够说出其核心思想且可以画出类图也知道应用场景,算是一个进步,但可能还不能够特别熟练的使用,可能需要多多巩固和强化使用才能够完全理解设计模式的精髓所在。学习期间收获还是不少的:1、从只听过设计模式到学习了所有的设计模式,并写了不少设计模式的博客,在公司期间也总结了,只会限于公司资料保密政策无法带出,对这个我只能呵呵,博客园也写了部分博客,有兴趣的可以查看随笔分类设计模式系列。2、看源码和别人写的代码的时候,开始能够知道用的是什么模式,比如项目中典型的解释器模式,外观模式,策略模式等等,现在写代码也会考虑系统的可扩展性,以及如何来更好的设计,从而是代码更加优化和漂亮。3、遇到问题也会想是否可以采用设计模式来解决问题,对面向对象也进一步的理解了。下面来总结下自己所学习的设计模式,首先我们看下各个模式之间的关系图,下面这张图是网上比较典型的一个类图关系:...
JAVA设计模式总结之23种设计模式
总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式和线程池模式。用一个图片来整体描述一下: 总原则:开闭原则(OpenClosePrinciple)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类等,后面的具体设计中我们会提到这点。1、单一职责原则不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,如若不然,就应该把类拆分。 2、里氏替换原则(LiskovSubstitutionPrinciple)里氏代换原则(LiskovSubstitu...
Java并发编程:volatile关键字解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分析了volatile关键字的实现原理,最后给出了几个使用volatile关键字的场景。 以下是本文的目录大纲: 一.内存模型的相关概念 二.并发编程中的三个概念 三.Java内存模型 四..深入剖析volatile关键字 五.使用volatile关键字的场景 若有不正之处请多多谅解,并欢迎批评指正。 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/3920373.html 大家都知道,计算机在执行程序时,每条指令都是在CPU中...
java 非缓冲与缓冲数据读取比较
首先不适用缓存技术,读取数据://非缓冲计时packagecom.swust;importjava.io.*;/**功能:创建一个程序,写10000个随机双精度的数到一个文件中,同时测试运用缓冲和非缓冲技术**读取数据,求平均数,进行这种操作所需要的时间*分析:*在写开始操作之前,先获取当前时间*再将它同操作结束后的时间作比较,以此判断各个操作的时间*实现:*仍使用两个类:*/publicclassflowTest{publicstaticvoidmain(String[]args){doublesum=0;try{longstart=System.currentTimeMillis();FileInputStreamfileIn=newFileInputStream("sample.ini");DataInputStreamin=newDataInputStream(fileIn);for(inti=0;i<10000;i++){sum+=in.readDouble();}in.close();longstop=System.currentTimeMillis();System...
java 非缓冲与缓冲数据写入比较
//非缓冲计时packagecom.swust;importjava.io.*;/**功能:创建一个程序,写10000个随机双精度的数到一个文件中,同时测试运用缓冲和非缓冲技术*进行这种操作所需要的时间*分析:*写双精度数到磁盘中的代码和之前文章类似。在写开始操作之前,先获取当前时间*再将它同操作结束后的时间作比较,以此判断各个操作的时间*实现:*仍使用两个类:*/publicclassflowTest{publicstaticvoidmain(String[]args){try{longstart=System.currentTimeMillis();FileOutputStreamfs_out=newFileOutputStream("sample.ini");DataOutputStreamout=newDataOutputStream(fs_out);for(inti=0;i<10000;i++){out.writeDouble(Math.random());}out.close();longstop=System.currentTimeMillis();System.o...
java 文件操作 读取txt文本(兄弟常开心)
测试一下读取文本的另一种方法:该方法只使用一个类读取了文件注意:buffer和read方法中读取指定长度的一致packagecom.swust;importjava.io.*;/**数据流包括DataInputStream、DataOutputStream类,*两个类的实例化完成流的操作*/publicclassflowTest{publicstaticvoidmain(String[]args){bytebuffer[]=newbyte[2048];//TODOAuto-generatedmethodstubStringpath="C:/test/1/";StringinforTxt="1.txt";StringnewPath=path+inforTxt;try{FileInputStreamfileInput=newFileInputStream(newPath);intbytes=fileInput.read(buffer,0,2048);Stringstr=newString(buffer,0,bytes);System.out.println(str);fileInput.c...
java 文件操作 写入和读取(小结一)
参考了这篇博客并优化,谢谢:http://blog.sina.com.cn/s/blog_99201d890101b4le.html功能: 实现通过两个类完成先写入文件,再读取数据计算显示packagecom.swust;importjava.io.*;/**数据流包括DataInputStream、DataOutputStream类,*两个类的实例化完成流的操作*/publicclassflowTest{publicstaticvoidmain(String[]args)throwsIOException{//TODOAuto-generatedmethodstubStringusername="1";Stringpath="C:/test/"+username;StringinforTxt="msg.db";StringnewPath=path+inforTxt;FileOutputStreamfileOut=newFileOutputStream(newPath);DataOutputStreamout=newDataOutputStream(fileOut);//定义...
java 文件操作 读取字节级数据(读取)
packagecom.swust;importjava.io.*;/**功能:按照双精度浮点型、整型、布尔型、字符型、和字符串型的顺序从名为sample.dat文件读取数据*分析:用FileInputStream类创建一个输出流的实例作为一个“流”*将该实例作为DataInputStream对象的输入*该对象调用各种方法实现从“流”读取的功能*图形:*sample.dat---->fs_out(FileOutputStream)------->out(DataOutputStream)*FileOutputStream类似一个底层函数,DataOutputStream为顶层函数,使用它作为一个桥梁输出到流*/publicclassflowTest{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubtry{FileInputStreamfs_in=newFileInputStream("sample.dat");DataInputStreamin=n...
java流和文件 保存字节级数据(写)
重要的知识点:流的概念: 从数据源到I/O类的输入流(in) 从I/O类到数据接收器的输出流(out)I/O包含子类较多的有四大家族:InputStream,OutputStream,Reader和Write类 InputStream,OutputStream类均为抽象类,也就是说不能用他们创建实例对象,必须子类化之后才能建立对象printStream是一个格式化的输出流,它含有如下形式的write()方法publicvoidwrite(intb)publicvoidwirte(byteb[],intoff,intlen);除了write()方法外,printStream还有两个主要方法,print()和println(),举例如下:System.out.println(“hellojava");System.out.print("x=",x);主要差别是:print()方法是先把字符保存到缓冲区,然后当遇到换行符""时再显示到屏幕上;而则是...
java udp 发送小数数字(较难)
代码全部来自:http://825635381.iteye.com/blog/2046882,在这里非常感谢了,我运行测试了下,非常正确,谢谢啊服务端程序:packageudpServer;importjava.io.*;importjava.net.*;/***服务端*1、创建服务+端口*2、准备接受容器byte数组*3、把接收容器封装成包DatagramPacket*4、接受数据*5、分析数据将字节数组转换成--------》各种类型数据*6、释放资源*/publicclassserver{publicstaticvoidmain(String[]args)throwsIOException{//1.创建服务+端口DatagramSocketserver=newDatagramSocket(9999);//2.准备接受容器byte[]container=newbyte[1024];//3.封装成包DatagramPacket(bytebuf[],intlength)DatagramPacketpacket=newDatagramPacket(container,container....
java udp socket(双通信)
参考博客:http://blog.csdn.net/wintys/article/details/3525643/,非常感谢实现功能:客户端发送字符串A ->服务端接收并显示在控制台 服务端回复字符串B ->客户端接收并显示在控制台 服务端程序:packageudpServer;importjava.io.*;importjava.net.*;/***服务端*1、创建服务+端口*2、准备接受容器byte数组*3、把接收容器封装成包DatagramPacket*4、接受数据*5、分析数据*/publicclassserver{publicstaticvoidmain(String[]args)throwsIOException{DatagramSocketserver=newDatagramSocket(5050);byte[]recvBuf=newbyte[100];DatagramPacketrecvPacket=newDatagramPacket(recvBuf,recvBu...
java udp socket通信(仅发送)
实现功能:客户端发送一个字符串(可以为汉字),服务器端接收并显示服务器端程序:packageudpServer;importjava.io.*;importjava.net.*;/***服务端*1、创建服务+端口*2、准备接受容器byte数组*3、把接收容器封装成包DatagramPacket*4、接受数据*5、分析数据*/publicclassserver{publicstaticvoidmain(String[]args)throwsIOException{//1.创建服务+端口DatagramSocketserver=newDatagramSocket(9999);//2.准备接受容器byte[]container=newbyte[1024];//3.封装成包DatagramPacket(bytebuf[],intlength)DatagramPacketpacket=newDatagramPacket(container,container.length);//4.接受数据(阻塞式接受)server.receive(packet);//5.分析数据byte[]data=pack...