精华内容
下载资源
问答
  • 性格测试数据统计(JAVA实现) 新开了一门外教课程,Object-oriented Programming(JAVA), 记录一些学习经验,以及部分和c++的区别感悟。本文为性格测试数据统计作业demo, 大概要求是对一个.txt文件里的数据进行统计...

    性格测试数据统计(JAVA实现)

    新开了一门外教课程,Object-oriented Programming(JAVA), 记录一些学习经验,以及部分和c++的区别感悟。本文为性格测试数据统计作业demo, 大概要求是对一个.txt文件里的数据进行统计并打印输出要求格式。
    text输入文件格式如下:

    Zhang San
    BABAAAABAAAAAAABAAAABBAAAAAABAAAABABAABAAABABABAABAAAAAABAAAAAABAAAAAA

    text输出文件格式如下:

    Zhang San: [90, 15, 10, 10] = ISTJ

    注:数字为选项B的比例,后边的字母为对应的性格,详见:Keirsy Temperament Sorter

    相比上一篇文章(降雨绘图(JAVA实现)),本次作业的主要学习总结如下:

    • class constant可以强增代码的可读性,对于编写文档有帮助,但有时也会使程序不那么灵活
    • 数组array(包括int[] String[]等)是用引用方式references传递的
    • 一条一条读进数据,再一条一条写到文件中,个人觉得更加合理。(因为当数据量较大时,内存可能无法一次读进来所有数据,有点像深度学习里训练网络需要用个生成器,边训练边送数据)

    自己的总结与思考,目前水平有限,若有建议欢迎指教! 代码如下:

    package demo;
    
    import java.util.*;
    import java.io.*;
    
    
    public class Personality {
    	
    	/*
    	 * Some magic number of this program
    	 * */
    	// most of arrays' capacity.
    	private static final int FOUR = 4;
    	// question group of personality.
    	private static final int QUEGROUP = 10;
    	// question number of one group.
    	private static final int QUENUM = 7;
    	// dimension index for combine i loop.
    	private static final int[] DIM = {0, 1, 1, 2, 2, 3, 3};
    	
    	/*
    	 * Four dimension of personality test
    	 * X mean 50% result
    	 * */
    	private static final String[] DIM0 = {"E", "I"};
    	private static final String[] DIM1 = {"S", "N"};
    	private static final String[] DIM2 = {"T", "F"};
    	private static final String[] DIM3 = {"J", "P"};
    	private static final String[][] PERDIM= {DIM0, DIM1, DIM2, DIM3};
    	private static final String X = "X";
    	
    	// relative path
    	private static final String PATH = "./";
    	
    	public static void main(String[] args) throws FileNotFoundException {
    		
    		Scanner console_input = new Scanner(System.in);
    		
    		openMenu();
    		
    		Scanner input_file = readInString(console_input);
    		
    		stasticDbFile(input_file, console_input);
    		
    		closeMenu();
    		
    	}
    	
    	
    	/*
    	 * short introduction
    	 * */
    	private static void openMenu()
    	{
    		System.out.println("You can obtain statistics data of the personality test in this program");
    	}
    	
    	/*
    	 * Ask the user for the name of the input.
    	 * If not exist, ask again.
    	 * */
    	private static Scanner readInString(Scanner console_input)
    	{
    		
    		while (true)
    		{
    			System.out.print("personality test database file name? ");
    			String file_name = console_input.nextLine().trim();
    			String path = PATH + file_name;
    			try {
    				Scanner input_file = new Scanner(new File(path));
    				return input_file;
    			}
    			catch ( Exception e ) {
    				
    				System.out.println("Please check the file name!");
    		    }
    		}
    		
    	}
    	
    	/*
    	 * Read the input file.
    	 * Name the output file.
    	 * */
    	private static void stasticDbFile(Scanner input_file, Scanner console_input) throws FileNotFoundException
    	{
    		String ouput_file = readOutString(console_input);
    		PrintStream output = new PrintStream(new File(ouput_file));;
    
    		while ( input_file.hasNextLine() ) 
    		{
    			String name = input_file.nextLine();
    			String data = input_file.nextLine();
    			statistics(name, data, output);
    		}
    		
    		input_file.close();
    	}
    	
    	/*
    	 * Ask the user for the name of the output.
    	 * */
    	private static String readOutString(Scanner console_input)
    	{
    		System.out.print("statistics data file name(ouput)? ");
    		String file_name = console_input.nextLine().trim();
    		return file_name;
    	}
    	
    	/*
    	 * statistics the input file.
    	 * three main parts(methods) all in this part.
    	 * compareAB: estimate A or B or X.
    	 * percentB: B percent of every dimension.
    	 * perType: dimension chose.
    	 * */
    	private static void statistics(String name, String data, PrintStream output)
    	{
    		// counts of A and B
    		int A_count[] = new int[FOUR]; 
    		int B_count[] = new int[FOUR];
    		
    		
    		for (int i = 0; i < QUEGROUP; i++)
    		{
    			// every group have the same structure of questions.
    			int group = i * QUENUM;
    			
    			for (int num = 0; num < QUENUM; num++)
    			{
    				// DIM use here to combine the i and question dimension.
    				// For example, i = 1 and 2, are the DIM1("S" or "N") question
    				compareAB(A_count, B_count, data.charAt(num+group), DIM[num]);
    			}		
    		}
    
    		int[] B_percent =  percentB(A_count, B_count);
    		
    		String pertype = perType(B_percent);
    		
    		// print the data of One person in the output file.
    		printAnswer(name, B_percent, pertype, output);
    		
    	}
    	
    	private static void compareAB(int[] A_count, int[] B_count, char data, int dim)
    	{
    		
    		if (data == 'A' || data == 'a')
    		{
    			A_count[dim]++;
    		}
    		
    		if (data == 'B' || data == 'b')
    		{
    			B_count[dim]++;
    		}
    		
    	}
    	
    	private static int[] percentB(int[] A_count, int[] B_count)
    	{
    
    		int[] B_percent = new int[FOUR];
    		
    		for (int i = 0; i < FOUR; i++)
    		{
    			// turn in the double, than back to int.
    			B_percent[i] = (int) Math.round( ( ((double)B_count[i]) / ((double)(A_count[i]+B_count[i])) ) * 100 );
    		}
    		
    		return B_percent;
    		
    	}
    	
    	private static String perType(int[] B_percent)
    	{
    		
    		String pertype = " ";
    		
    		for (int i = 0; i < FOUR; i++)
    		{
    			if (B_percent[i] > 50) { pertype = pertype + PERDIM[i][1]; }
    			else if (B_percent[i] < 50) { pertype = pertype + PERDIM[i][0]; }
    			else { pertype = pertype + X; }
    		}
    		
    		return pertype;
    	}
    	
    	/*
    	 * print the data of One person in the output file.
    	 * */
    	private static void printAnswer(String name, int[] B_percent, String pertype, PrintStream output)
    	{
    		
    		output.println(name + ": [" + B_percent[0]+", "+ B_percent[1]+", "+B_percent[2]+", "+B_percent[3] + "] =" + pertype);
    	}
    	
    	/*
    	 * Say goodbye to user.
    	 * a flag of program is finished
    	 * */
    	private static void closeMenu()
    	{
    		System.out.println("statistics finshed! Bye!");
    	}
    
    }
    
    
    展开全文
  • 有趣的测试性格指数的JAVA小程序,无论你输入什么数字,得到的测试都是一样的,很有趣吧
  • Mustang(也称作Java SE 6),如今刚进入其第二个测试阶段。本文作者将同你进一步探讨这个信的发行版本中所提供的许多信的特征(从控制台I/O和存取权限控制方法到系统托盘API和表格排序和过滤等)。一、 引言Mustang(也...

    Mustang(也称作Java SE 6),如今刚进入其第二个测试阶段。本文作者将同你进一步探讨这个信的发行版本中所提供的许多信的特征(从控制台I/O和存取权限控制方法到系统托盘API和表格排序和过滤等)。

    一、 引言

    Mustang(也称作Java SE 6),如今刚进入其第二个测试阶段。本文中让我们一起进一步探讨这个信的发行版本中所提供的许多信的特征(从控制台I/O和存取权限控制方法到系统托盘API和表格排序和过滤等)。

    在分析控制文件和目录存取许可的若干信的文件方法后,本文将向你展示信的桌面集成API。然后,本文还要分析Mustang的信的编程存取网络参数的能力。最后,本文将讨论表格组件的信的排序与过滤能力。

    【注意】我使用Java SE 6的第二个测试版本(build 86)开发并测试了本文的Java示例应用程序,OS平台是windows 98 SE。

    二、 存取权限控制方法

    从某种角度看,File类的一个实例其实是一个标识文件系统中文件或目录对象的抽象路径名。文件系统可以限制在这个对象上实现的读、写以及执行等操作。

    读、写和执行限制统称为“存取权限”。文件系统可以把多个存取权限集和关联到单个对象。例如,一个集和可以用于对象的所有者而另一个集和可以用于所有的其他用户。

    前一个版本中提供的存取权限在直接用于存取对象时,有可能会导致File类的一些方法失败。由于这个原因,Mustang为File类引入了六种信的方法以便让你修改路径名的存取权限:

    ①“public boolean setExecutable(boolean executable, boolean ownerOnly)”:设置所有者或每个人对于指定抽象路径名的执行许可权。当executable为true时,允许执行操作;而传递给它的值为 false时,则不允许执行。把true传递给参数ownerOnly仅允许该抽象路径名的所有者拥有该许可权;当ownerOnly为false,则把该许可权授予每个人。如果底层文件系统无法区分所有者的执行许可与每个人的执行许可,那么,该许可应用于每个人,而不管owNeronly取值如何。

    该方法在成功时返回true;否则,返回false。如果用户无权改变抽象路径名的存取权限或如果底层文件系统没有实现一种执行许可并且executable为false,则方法调用失败。

    ②“public boolean setExecutable(boolean executable)”:这个方法便于设置所有者对于给定抽象路径名的执行权限。

    ③public oolean setReadable( oolean readable, oolean ownerOnly)”:设置所有者或每个人对于这个抽象路径名的读取许可权。参数readable为true时允许读取操作;否则,不允许读取。参数 ownerOnly为true时仅允许该抽象路径名的所有者拥有该许可权;当ownerOnly为false,则把该许可权授予每个人。如果底层文件系统无法区分所有者的读取许可与每个人的读取许可,那么,该许可应用于每个人,而不管owNeronly取值如何。

    该方法在成功时返回true;否则,返回false。如果用户无权改变抽象路径名的存取权限或如果底层文件系统没有实现一种读取许可并且readable为false,则方法调用会失败。

    ④“public boolean setReadable(boolean readable)”:这个方法便于设置所有者对于给定抽象路径名的读取权限。

    ⑤“public boolean setWritable(boolean writable,boolean ownerOnly)”:设置所有者或每个人对于这个抽象路径名的写许可权。参数writable为true时允许写操作;否则,不允许写操作。参数 ownerOnly为true时仅允许该抽象路径名的所有者拥有该许可权;当ownerOnly为false,则把该许可权授予每个人。如果底层文件系统无法区分所有者的写许可与每个人的写许可,那么,该许可应用于每个人,而不管owNeronly取值如何。

    该方法在成功时这个方法返回true;否则,返回false。如果用户无权改变抽象路径名的存取权限,则方法调用会失败。

    ⑥“public boolean setWritable(boolean writable)”:这个方法便于设置所有者对于给定抽象路径名的写权限。

    【注意】如果存在一个安全管理器并且它的“public void checkWrite(String file)”方法不允许对文件进行写操作的话,则上面列出的每一个方法都会抛出一个SecurityException异常。

    File类还提供了如下对应的方法以帮助你获得一个对象当前设置的读、写和执行权限:

    ①public boolean canRead();

    ②public boolean canWrite();

    ③public boolean canExecute()(在Mustang中信引入的)。

    我创建了一个简单的展示setWritable()和canWrite()方法用法的名为WritableDemo的应用程序。在这个应用程序中,你能够使一个文件系统对象可写或仅能读取,而且还能查看这一许可的当前设置。本文示例源码中的列表1完整地展示了这个文件WritableDemo.java (略)。

    [1] [2] [3] [4] 下一页

    展开全文
  • java 小游戏 趣味测试

    2010-05-19 11:13:15
    本人的java小作业 进行趣味测试(性格、关系、智力等) 包括 源码 可执行文件 开发文档 资源文件
  • Java开发工程师面试稿–测试 面试官好,我很荣幸参加贵公司的面试,首先请允许我做一下简单的自我介 绍,我叫xx,今年xx岁,来自xx,今天来公司面试JAVA开发工程师。【曾任职于xx公司】,本人性格沉稳,能够吃苦耐劳...

    Java开发工程师面试稿–测试

    面试官好,我很荣幸参加贵公司的面试,首先请允许我做一下简单的自我介

    绍,我叫xx,今年xx岁,来自xx,今天来公司面试JAVA开发工程师。【曾任职于xx公司】,本人性格沉稳,能够吃苦耐劳,有较强的抗压能力和适应新环境的能力。能够在最短的时间内做到从应聘者变为职业工作人员的转型,尽自己最大的努力融入到新的工作生活中。本人从事这个行业已经有一个年头了,拥有扎实的Java编程基础,熟悉web应用程序开发的过程和各种常见的设计模式。在【工作/任职】期间,我严格要求自己,自觉、遵纪、守时,且富有责任心。主要涉及的行业项目包括基于javaee开发的的医药管理系统,

    在开发过程中,也用过好些开源框架,比如:springboot、springmvc、spring、Mybatis等框架,熟练掌握框架之间的整合技术。我们服务器用的是Tomcat,开发工具用的是idea,数据库用的是mysql,也用到了像lombok这样的开发小技巧减少了代码的冗余。有时候因为项目需求或是为了开发的高效性,我自己也会研究一些技术,使用一些常用的主流java技术:GIt统一版本控制、log4j日志管理,正所谓技多不压身,我身为一名Java工程师,对于前端技术也有所研究,如:html5+css3+javascript,jquery,还有LayUi框架,这使我在与前端对接调试的时候,可以更好的与前端工程师进行沟通。在前公司做java工程师,主要的任务是:

    在项目经理的带领下参与了需求文档的编写。在设计阶段,参与过工具类的封装,使用powerdesigner完成数据库的设计。编码过程中,主要负责一些功能模块的编码实现,并使用junit做单元测试。项目管理上,与项目经理沟通协调过项目的进度,使用maven对项目进行管理,还帮助其他开发人员解决一些开发过程中的问题。

    平时呢还喜欢上一些技术网站比如csdn、开源中国、博客园等这些网站,研究一些新的技术点,来增加自己的行业知识。毕竟时代在发展,科技在进步。

    要跟上时代的步伐,避免被淘汰啊!(我十分欣赏贵公司的工作环境,企业文化。近期,看到贵公司的招聘信息,
    感觉自己的技术与能力很匹配,所以就投递了简历,)希望,贵公司能给我这次工作的机会,我相信通过我的努力,一定能给公司带来价值。

    我的自我介绍完毕,请各位面试官多多指教,谢谢!

    展开全文
  • 野马的性格 Java SE 6.0新特性体验

    千次阅读 2006-12-18 15:53:00
    Mustang(也称作Java SE 6),如今刚进入其第二个测试阶段。本文作者将同你进一步探讨这个新的发行版本中所提供的许多新的特征(从控制台I/O和存取权限控制方法到系统托盘API和表格排序和过滤等)。 一、 引言 ...
    Mustang(也称作Java SE 6),如今刚进入其第二个测试阶段。本文作者将同你进一步探讨这个新的发行版本中所提供的许多新的特征(从控制台I/O和存取权限控制方法到系统托盘API和表格排序和过滤等)。

      一、 引言

      Mustang(也称作Java SE 6),如今刚进入其第二个测试阶段。本文中让我们一起进一步探讨这个新的发行版本中所提供的许多新的特征(从控制台I/O和存取权限控制方法到系统托盘API和表格排序和过滤等)。

      在分析控制文件和目录存取许可的若干新的文件方法后,本文将向你展示新的桌面集成API。然后,本文还要分析Mustang的新的编程存取网络参数的能力。最后,本文将讨论表格组件的新的排序与过滤能力。

      【注意】我使用Java SE 6的第二个测试版本(build 86)开发并测试了本文的Java示例应用程序,OS平台是Windows 98 SE。

      二、 存取权限控制方法

      从某种角度看,File类的一个实例其实是一个标识文件系统中文件或目录对象的抽象路径名。文件系统可以限制在这个对象上实现的读、写以及执行等操作。

      读、写和执行限制统称为“存取权限”。文件系统可以把多个存取权限集合关联到单个对象。例如,一个集合可以用于对象的所有者而另一个集合可以用于所有的其他用户。

      前一个版本中提供的存取权限在直接用于存取对象时,有可能会导致File类的一些方法失败。由于这个原因,Mustang为File类引入了六种新的方法以便让你修改路径名的存取权限:

       ①“public boolean setExecutable(boolean executable, boolean ownerOnly)”:设置所有者或每个人对于指定抽象路径名的执行许可权。当executable为true时,允许执行操作;而传递给它的值为 false时,则不允许执行。把true传递给参数ownerOnly仅允许该抽象路径名的所有者拥有该许可权;当ownerOnly为false,则把 该许可权授予每个人。如果底层文件系统无法区分所有者的执行许可与每个人的执行许可,那么,该许可应用于每个人,而不管ownerOnly取值如何。

      该方法在成功时返回true;否则,返回false。如果用户无权改变抽象路径名的存取权限或如果底层文件系统没有实现一种执行许可并且executable为false,则方法调用失败。

      ②“public boolean setExecutable(boolean executable)”:这个方法便于设置所有者对于给定抽象路径名的执行权限。

       ③public oolean setReadable( oolean readable, oolean ownerOnly)”:设置所有者或每个人对于这个抽象路径名的读取许可权。参数readable为true时允许读取操作;否则,不允许读取。参数 ownerOnly为true时仅允许该抽象路径名的所有者拥有该许可权;当ownerOnly为false,则把该许可权授予每个人。如果底层文件系统 无法区分所有者的读取许可与每个人的读取许可,那么,该许可应用于每个人,而不管ownerOnly取值如何。

      该方法在成功时返回true;否则,返回false。如果用户无权改变抽象路径名的存取权限或如果底层文件系统没有实现一种读取许可并且readable为false,则方法调用会失败。

      ④“public boolean setReadable(boolean readable)”:这个方法便于设置所有者对于给定抽象路径名的读取权限。

       ⑤“public boolean setWritable(boolean writable,boolean ownerOnly)”:设置所有者或每个人对于这个抽象路径名的写许可权。参数writable为true时允许写操作;否则,不允许写操作。参数 ownerOnly为true时仅允许该抽象路径名的所有者拥有该许可权;当ownerOnly为false,则把该许可权授予每个人。如果底层文件系统 无法区分所有者的写许可与每个人的写许可,那么,该许可应用于每个人,而不管ownerOnly取值如何。

      该方法在成功时这个方法返回true;否则,返回false。如果用户无权改变抽象路径名的存取权限,则方法调用会失败。
     ⑥“public boolean setWritable(boolean writable)”:这个方法便于设置所有者对于给定抽象路径名的写权限。

      【注意】如果存在一个安全管理器并且它的“public void checkWrite(String file)”方法不允许对文件进行写操作的话,则上面列出的每一个方法都会抛出一个SecurityException异常。

      File类还提供了如下对应的方法以帮助你获得一个对象当前设置的读、写和执行权限:

      ①public boolean canRead();

      ②public boolean canWrite();

      ③public boolean canExecute()(在Mustang中新引入的)。

       我创建了一个简单的展示setWritable()和canWrite()方法用法的名为WritableDemo的应用程序。在这个应用程序中,你能 够使一个文件系统对象可写或仅能读取,而且还能查看这一许可的当前设置。本文示例源码中的列表1完整地展示了这个文件WritableDemo.java (略)。

      三、 桌面集成

      Sun的Java桌面开发小组引入了若干新的特征以进一步提高 Java在桌面开发领域的影响。其中三个著名的特征是:Splash屏幕支持(它让应用程序在启动过程中显示Splash屏幕),系统托盘支持(它让应用 程序把图标,提示窗信息和弹出菜单添加到系统托盘),和一组新的桌面API。

      现在,我们来讨论桌面API,它有助于无缝地把Java 应用程序与桌面集成到一起。该API支持Java应用程序使用一个特定的统一资源标识符(URI)启动操作系统的缺省的浏览器;启动OS的缺省的电子邮件 客户端;以及启动应用程序以打开、编辑或打印与该应用程序相关联的文件。

      桌面API使用OS的文件关联机制来启动关联到特定的文件类型的应用程序。例如,.doc文件扩展经常与微软的Word关联。经由桌面API,一个Java应用程序能够启动Word以打开、打印或编辑与这个扩展名相关联的文件。

       在启动浏览器电子邮件客户端或任何应用程序之前,你的Java应用程序必须决定你的OS是否支持该API。这一决定是通过调用 java.awt.Desktop类的“public static boolean isDesktopSupported()”方法实现的。如果OS支持该API,这个方法返回true;否则,它返回false。

      在 调用isDesktopSupported()之后,该应用程序通过调用Desktop的“public static Desktop getDesktop()”方法继续检索Desktop对象。如果OS不支持键盘输入、显示器或鼠标,这个方法将抛出一个 java.awt.Headless异常。如果OS不支持该桌面API,则抛出一个UnsupportedOperationException异常。

       现在,既然该Java应用程序已经拥有了一个桌面实例,那么,按下来,它就能够调用各种方法以浏览、发送邮件、打开、编辑或打印。在执行任何这些操作之 前,该程序可以调用Desktop的“public boolean isSupported(Desktop.Action action)”方法,如果桌面支持该行为(被描述为适合的Desktop.Action枚举实例),则这个方法返回true。这些 Desktop.Action枚举如下:

      · BROWSE:这个枚举实例描述OS的缺省浏览器的浏览行为。

      · MAIL:这个枚举实例描述OS的缺省电子邮件客户端的邮件行为。

      · OPEN:这个枚举实例描述与打开一个特定的文件类型相关联的一个应用程序执行的打开行为。

      · EDIT:这个枚举实例描述与编辑一个特定的文件类型相关联的一个应用程序执行的编辑行为。

      · PRINT:这个枚举实例描述与打印一个特定的文件类型相关联的一个应用程序执行的打印行为。

       【注意】在调用相应行为的Desktop方法前,你不必调用“isSupported(Desktop.Action action)”来决定是否支持该行为:你可以直接调用相应的方法,但是之后,你必须处理该方法潜在地抛出的一个 UnsupportedOperationException异常。可以从Desktop存取下列行为方法:

      ①“public void browse(URI uri)”:启动用户缺省的浏览器以显示一个URI—如果浏览器能够处理这个URI的话;否则,它启动该URI缺省的处理器应用程序(这具体要依赖于在java.net.URI类中定义的协议和路径)。

      如果uri为null,则抛出一个NullPointerException异常。如果用户的缺省浏览器没有找到或它没能启动或缺省的处理器应用程序没能启动,则抛出一个java.io.IOException异常。

      ②“public void edit(File file)”:启动相关联的编辑器应用程序并且打开一个文件进行编辑。
    如 果file为null,则抛出一个NullPointerException异常。如果指定的文件不存在,则抛出一个 IllegalArgumentException异常。最后,如果指定的文件相关联的应用程序没能启动,或这个文件没有相关联的编辑器,则抛出一个 IOException异常。

      ③“public void mail()”:启动用户缺省的电子邮件客户端的邮件编辑窗口。

      如果用户缺省的电子邮件客户端没有发现或启动失败,则抛出一个IOException异常。

      ④“public void mail(URI mailtoURI)”:启动用户缺省的电子邮件客户端的邮件编辑窗口,填充由一个“mailto:”URI指定的消息域。这个URI能够指定包括“cc”,“subject”和“body”在内的各种消息域。

       如果mailtoURI为null,则抛出一个NullPointerException异常。如果URI的模式不是mailto,则抛出一个 IllegalArgumentException异常。如果用户缺省的电子邮件客户端没有发现或启动失败,则抛出一个IOException异常。

      ⑤“public void open(File file)”:启动相关联的应用程序以打开该文件。如果指定的文件是一个目录,则启动OS的文件管理器以打开它。

       如果file为 null,则抛出一个NullPointerException异常。如果指定的文件不存在,则抛出一个 IllegalArgumentException异常。最后,如果该指定的文件没有相关联的应用程序,或如果这个应用程序没能启动,则抛出一个 IOException异常。

      ⑥“public void print(File file)”:使用相关联的应用程序的打印命令并使用本地桌面打印设备打印一个文件。

       如果file为null,则抛出一个NullPointerException异常。如果指定的文件不存在,则抛出一个 IllegalArgumentException异常。如果指定的文件没有相关联的能够用于打印其内容的应用程序,则抛出一个IOException异 常。

      【注意】如果一个安全管理器存在并且不允许执行要求的行为的话,上面列出的每一个方法都会抛出一个SecurityException异常。

       为此,我创建了一个展示桌面API用法的DesktopDemo应用程序。这个应用程序创建了一个包含一系列浏览,邮件,打开,编辑,和打印等单选按钮 的GUI界面;还有一个文本域用于输入一个URI或文件名。在输入一个URI或文件名之后,点击适当的按钮便可以从桌面上启动一个应用程序。本文示例源码 中的列表2展示了这个文件DesktopDemo.java(略)。

      在编译和运行DesktopDemo后,在文本域输入一个文件名并点击Open,Edit或Print中的一个按钮以启动该文件相应的应用程序。或输入一个URI并点击“Browse”或“Mail”。图1展示了我已经在文本域中输入了一个邮件URI的屏幕快照。

    野马的性格JavaSE6.0新特性体验(2)
    图1.在此,当输入一个邮件URI时,我没有指定“mailto:”前缀,因为我的电子邮件客户端把这个前缀自动地加入到邮件编辑窗口中的接收者的电子邮件地址的前面。

       这个邮件URI仅包含接收者的电子邮件地址和一个主题。当然,我也可以包括正文文本,这可以通过添加“&BODY=”,其后面再跟着一些文本的 方法实现。在点击“Mail”单选按钮后,我的电子邮件客户端的邮件编辑窗口中将在正确位置显示接收者的电子邮件地址和主题,如图2所示。

    野马的性格JavaSE6.0新特性体验(2)
    图2.这里所提供的邮件URI还能够指定除主要接收者的电子邮件地址外的其它邮件地址。

      四、 以编程方式存取网络参数

      Mustang提供了以编程方式存取网络参数的方法—这是通过在java.net.NetworkInterface类和新的java.net.InterfaceAddress类中提供的10个新的方法实现的。这些新引入的网络接口方法列举如下:

      ①“public byte[] getHardwareAddress()”:以一个字节数组形式返回这个网络接口的硬件地址(通常是机器地址代码,或MAC—也称作以太网地址)。如果 这个接口没有一个硬件地址,或如果不能存取这个地址(因为该用户没有足够的权限),则返回null。如果发生一个I/O错误,则抛出一个 java.net.SocketException异常。

      ②“public List<InterfaceAddress> getInterfaceAddresses()”:返回一个java.util.List,它包含这个网络接口的所有接口地址(作为 InterfaceAddress实例)或其中一个子集。如果存在一个安全管理器,那么将使用相应于每一个接口地址的 java.net.InetAddress来调用它的一个checkConnect方法。注意,这个方法仅在列表中返回 InterfaceAddresses;而且此时,checkConnect并不抛出一个SecurityException异常。

       ③“public int getMTU()”:返回这个网络接口的最大传输单位(MTU)。该MTU指的是一个通讯协议层能够传递到另一个层的最大包的大小(以字节为单位)。例 如,以太网允许的最大MTU是1500字节。根据某一标准(例如以太网)或连接时间(在端到端串行连接时,经常有这种情况),该MTU能够被设置为一个固 定长度。如果发生一个I/O错误,则抛出一个SocketException异常。

      ④“public NetworkInterface getParent()”:如果这个网络接口是一个子接口,则返回这个网络接口的父网络接口(作为一个NetworkInterface实例)。然而,如 果这个网络接口是一个物理(非虚拟的)接口或如果这个网络接口是虚拟的并且没有父接口,则返回null。

      ⑤“public Enumeration<NetworkInterface> getSubInterfaces()”:返回一个包含所有的子接口(也称为虚拟接口)的java.util.Enumeration(作为 NetworkInterface的实例)。例如,eth0:1是一个eth0的子接口(一个以太网网络接口名)。

      ⑥“public boolean isLoopback()”:返回true,如果这个网络接口是一个loopback接口(一种网络接口,在该接口中,外发数据作为输入数据被立即反射回 该接口)。如果存在一个I/O问题,则抛出一个SocketException异常。

      ⑦“public boolean isPointToPoint()”:返回true,如果这个网络接口是一个端到端的接口(例如一个通过调制解调器建立的PPP连接)。如果存在一个I/O问题,则抛出一个SocketException异常。

       ⑧“public boolean isUp()”:返回true,如果这个网络接口是“up”并且已经“running”。“up”指示已经为这个接口建立起了路由入口。 “running”指示要求的系统资源已经分配。如果存在一个I/O问题,则抛出一个SocketException异常。

      ⑨“public boolean isVirtual()”:返回true,如果这个网络接口是一个虚拟接口(也称作“子接口”)。如果存在一个I/O问题,则抛出一个SocketException异常。

       ⑩“public boolean supportsMulticast()”:返回true,如果这个网络接口支持多点传送(指一个服务器程序把一个消息的一个副本发送给多个客户端程序的 能力)。如果存在一个I/O问题,则抛出一个SocketException异常。

      InterfaceAddress类描述了一个网络接口地址。除了通常的实现获得一个哈希代码和获得一个字符串描述等方法之外,这个类还提供了下列三个方法:

      · “public InetAddress getAddress()”:返回给定接口地址:一个IP地址,一个子网掩码和一个广播地址(当该地址是IPv4时);或是一个IP地址和一个网络前缀长度(针对一个IPv6地址)。

      · “public InetAddress getBroadcast()”:返回给定接口地址的广播地址(在IPv4网络中作为一个InetAddress);在IPv6网络中则返回null(此时它没有广播地址)。

      · “public short getNetworkPrefixLength()”:返回给定接口地址的针对IPv6网络的网络前缀长度(或针对IPv4网络的子网掩码)。这个方法的返回值为一个短整型。

     【注意】 典型的IPv6值是128(::1/128)或10(fe80::203:baff:fe27:1243/10)。针对IPv4的典型的值是8(255.0.0.0),16(255.255.0.0),或24(255.255.255.0)。

     
    展开全文
  • 没找到原始地址,只看到个 作者:朱先忠编译 出处:天极开发 【导读】Mustang(也称作Java SE 6),如今刚进入其第二个测试阶段。本文作者将同你进一步探讨这个新的发行版本中所提供的许多新的特征(从控制台I/O和存取...
  • 测试的时候发现自己性格不好:比如很难交到朋友,和别人没话说,没有自己的观点,不喜欢大型聚会等怎么办?关系这方面的话题,所以就发现这类问题具有很多共同的特性,如果我能把这些整理好,或许可以给更多朋友做...
  • Java架构师成长直通车配套资料废话不多说直接上干货第一阶段:单体项目...配套干货:《架构师的性格测试和升级打怪》《架构师成长进阶方式》《学完这100多技术,能当架构师么?(非广告)》《【架构师成长必备】如何...
  • 今天,华为上研所实习招聘,来学校进行机试、性格测试、技术面试。上机题目凭记忆如下:1. 输入一个字符串,判断(1)首字母为大写,其他字符非大写字母;(2)其他字符包括符号空格等不能全部是非字母;满足条件则返回...
  • 当时好像是隔了三天左右就出结果了,做了一下华为的性格测试题,做的时候还感觉奇怪,为什么好多重复题,后来看了才发现,有些同学居然挂在了性格测试上,因为有重复出现的题目就是为了检测你的回答是否前后一致,...
  • 作为一个语言编程技术文档工程师,我个人认为掌握计算机语言需要一些基本技能。以下这几点相信能够帮你翻越Java计算机编程这座山。  1、读编程手册。...和测试类似,很多程序员认为代码才是关键的,但对一个公
  • JAVA自学之路

    2012-09-21 20:39:46
    经常的进行知识难点的查询,如果一个问题牵扯的面比较广,就干脆到网上搜索一些相关的专题,比如“java 乱码 mysql” “oracle 创建用户”等等,如果有必要,不要犯懒,勤动手写一些小小的测试程序,来弄明白知识点...
  • Java 实习面试经历(一)

    千次阅读 2018-03-28 15:35:38
    背景介绍本人普通二本大三学生,因为大三下学期有三天的空闲时间,于是在招聘软件上投了简历,想找 Java...一进门,前台的小姐姐就问我是不是来面试的,让我先登记一下,然后领一张应聘人员登记表和一张性格测试表去...
  • JAVA 面向对象 简单练习题 * 2

    千次阅读 多人点赞 2020-11-21 19:38:35
    第一题输入赋值打印(java面向对象与输入/打印类使用) 设计一个学生Student类。包含类的属性:“姓名”、“学号”、“班级”、“性别”、“年龄”、 “性格”,类方法:“获取姓名”“获取学号”、“获得性别”、...
  • 总共分为三个部分 第一部分:单选(20题):java基础;两题编程题(总时长1个小时) 第二部分、第三部分:基本的性格测试(无时长限制)
  • 搜狐测试开发一面

    2019-02-18 13:46:18
    1.笔试题:性格测试+一道测试用例设计题(搜索的整个过程:前端发送query请求,后段服务端接收后从高速缓存中读取,然后高速缓存中没有,从数据库中读取) 2.自我介绍 3.Java基础:为什么不能用+号连接字符串 4....
  • java实习的进来看看

    2019-02-24 17:36:32
    1. 如何识别培训机构 本人今年大四,出来实习,我是2月14那天到的杭州,找工作一周,面试了四家,但是有两家都是我没投过简历的,他们主动打电话联系的我,第一家我...1.过去之后交一份简历,然后领一份性格测试题...
  • 中移在线2020春季校招java开发岗面经

    千次阅读 2020-03-31 20:37:17
    刚参加完中国移动2020春季校招,由于今年特殊,招聘方式全部是线上,目前已完成笔试,技术面和人事面,等最后...在线测评主要是性格测试等,通过后会再发给你一个专业笔试链接,专业笔试也较简单。 3.技术面 ...
  • 1. 性格测试性格测试成绩和身份证号绑定,如果通过的话,有效期一年(也可能是一年以上,反正有效期很长);不通过的话会有第二次机会,但如果第二次也没通过就比较麻烦,除非业务很强,否则HR大概率会把你拒绝,...
  • 兴业银行招聘考试的内容和题型大同小异,每年兴业银行校园招聘的考试内容大体上可分为四大类:行政职业能力测试类(即我们平常说的行测)、英语类、综合知识类、性格测试类。一、行政职业能力测试类兴业银行行测考试...
  • 求职语言篇(C/C++/JAVA)

    2020-03-02 17:45:11
    华为(实习):机试、一面、性格测试被鄙视、优招被鄙视、普招被鄙视 锐捷:笔试、面试莫名其妙被鄙视 创新工场:笔试、一面、二面、offer 阿里巴巴:笔试被鄙视 cvte:网测、面试没去 大众点...
  • 首先说结果,三面的时候吃了一碗凉面(555)。 我是10月12日投的,...和我一起面试的还有一个Java开发,两个销售岗,一个测试岗(香港理工的一个研究生姐姐);下面说下几个人分别被问到的问题 销售岗主要问题...
  • 网上很少关于交行(IT类)的笔经,本着造福下一届的精神(其实是为了攒人品)我...一点专业知识都没复习考试时间9:00-11:50,两小时五十分钟,最后半个小时60题性格测试,不说了,只说第一部分。第一部分180题,包括行测...
  • 共分为三部分:客观题:50 min,30道选择主观题:70 min,方向四选一,3道代码题性格测试:30 min,100道(5分钟就做完了。。)代码题1(填空处填写):剑指 第5题 — 替换空格public class ZYWK_1 {public static void ...
  • 一轮笔试好像有三个部分吧,综合测评、技术测评以及性格测试,综合测评主要就是考核一些推理、思维能力,技术测评的话有涉及到一些Spring框架和Mysql的一些题目,综测和技测各30min,都是选择题。 二轮笔试就比较...
  • 最近一直负责公司的中高级JAVA工程师面试 面试过程中一直没有找到好的方法去评估一个人 是否适合公司的岗位要求。 测试技术能力的话,一般的人都是只会使用一些 框架性的东西,而且都是停留在使用的阶段。 问得...
  • 作为一名程序猿,基于自身的性格特点,在职场环境的激烈竞争下,起点虽然都是程序猿,但是经过若干年的职场洗礼,自己的岗位也在慢慢发生变化,这个变化大概来自以下两个因数: 1)在开发岗位上,研发质量低下,...

空空如也

空空如也

1 2 3 4
收藏数 71
精华内容 28
关键字:

java性格测试

java 订阅