精华内容
下载资源
问答
  • WorkWin企业电脑监控软件局域网/互联网监控软件的基本功能:知道员工在做什么,限制员工不能做什么,能精确地统计出员工每个月在每个软件或网站上消耗时间。可针对不同部门设置不同权限,智能禁止游戏、聊天软件...
  •  WorkWin企业电脑监控软件是软件架构,无需增加额外硬件,自适应局域网、互联网、有线无线网,无论能否上网,统统可以用。独家 提供绿色版,同类软件文件尺寸最小,解压缩就能用。运行稳定、占用资源少、文件小...
  • 有幸参与了国家某知名汽车研发企业的合作项目于,我作为一个不入眼的非全日制专科生,真的受宠若惊,毕竟之前从来没参加过什么实际项目开发,而这次的项目Java web + Android + 硬件的开发,我主要负责的就是...

    1、建立连接的原理

    在实现软件与硬件交互的时候,首先需要了解该硬件的构造,运行流程等相关操作,熟读相关的文档,知道硬件开发商那边给出了哪些接口,分别对应我们项目中的那些模块等等

    就拿我这个项目的硬件来说,供应商给出的连接流程如下图:
    在这里插入图片描述

    我们可以看到,整体流程并不复杂。执行操作的前提是App连接上硬件的WiFi,之后就是通过 UDP协议来发送指令。这里只大概介绍一下UDP协议,具体了解可以自行百度。

    UDP协议 是OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务

    举个例子,就比如送信,你写的一封信给你的朋友,你只需要将你朋友的名字、地址等信息填好,然后寄出去就可以了。而你的朋友在它的邮箱里可以收到它。你不需要一直等朋友收到信你才能走,朋友也不需要收到信才能离开。换句话来说,就是不需要发送方和接收方一直保持在线。

    为什么称之为不可靠信息传输服务?因为你寄出去了之后你就无法监控它了,这封信有可能半路丢了啊,不小心被烧掉了啊之类的。你只负责发送,至于朋友能不能收到你就管不了了。

    2、 “信件”和“邮递员”

    UDP的底层也是使用了Socket套接字,所以我们这里用到了DatagramSocket类,你可以把它看成邮递员

    
    	//创建 “邮递员” 13047为我们本机开放的端口,可以理解为寄件时填写的本人地址
    	DatagramSocket sendSocket = new DatagramSocket(13047);
    	
    

    既然邮递员有了,接下来就是写信,DatagramPacket类就可以理解为信件

    
    	//msgs 是需要发送的数据包,通过EncodingUtil.hexToByte转换为二进制数组
    	byte[] data = EncodingUtil.hexToByte(msgs);
    	//创建DatagramPacket对象,用来存放发送的数据,端口和ip
        DatagramPacket packet = new DatagramPacket(data,data.length);
        //指定广播的范围和端口(收件地址)
        //58121 硬件指定的接收端口
        packet.setPort(58121);
        //255.255.255.255  进行全网段广播,所有在本网域中的58121端口都会收到我发出去的信息
        packet.setAddress(InetAddress.getByName("255.255.255.255"));
        
        //使用DatagramSocket的send方法,发送数据包
        sendSocket.send(packet);
        //使用完流后应该关闭,这是一个好习惯
        sendSocket.close();
    

    既然信发出去了,那我们就等待对方回应吧。但是UDP是个不可靠的“邮递员”,对方会不会有没有收到信件的可能?这肯定是会有的,那该怎么处理这种情况?

    3、对方可能未收到如何处理

    首先我去向硬件方咨询了一下,如果硬件收到了UDP广播,在1~2秒内就会有回应的。所以我们可以设定一个等待时间,如果超时了,就重新发送一次

    
    	//计时器是否生效标志位
    	private boolean isAuto = false;
    	//创建CountDownTimer 对象,设置计时器
        private static CountDownTimer timerAuto;
    
    	//创建一个计时器  CountDownTimer(总时长,每次执行间隔时长)
    	//这里给了15s的计时,如果15s内未收到硬件的回应,就执行对应的操作
        timerAuto=new CountDownTimer(1000*15,1000) {
    		@Override
    		public void onTick(long millisUntilFinished) {
    		
    		}
    		
    		//当计时器走完总时长时执行
    		@Override
    		public void onFinish() {
    		  cancel();//取消计时器
    		  //关闭接收回应的监听
    		  //关闭监听
              receiverListener.exit();
    		  //创建线程,再次发送
    	      new Thread(new Runnable() {
    	          @Override
    	          public void run() {
    	              try {
    	              	//执行发送UDP广播
    	                  sendBroadcast();
    	              } catch (IOException e) {
    	                  e.printStackTrace();
    	              }
    	          }
    	      }).start();		
    		}
    	};
    	
    	//如果未重新发送过,就启动计时器
    	//如果已经重发过了,就不再次重发了,发了两次都没有收到,那应该是其他地方的问题了
    	if(!isAuto){
            isAuto=true;//标志位状态变更
    		timerAuto.start();//启动计时器
    	}else{
    		 // 如果多次重发都未回应,那么就可能有以下几种情况:
    			//1. “信件”的问题,检查一下发送的端口号是否正确,本地开启的端口是不是被占用,发送的数据包格式是否正确等
    			//2. “道路”的问题,App与硬件通信的前提是需要App连接硬件的Wifi,检查一下连接过程中设备与硬件WiFi是否一直保持正常连接,毕竟路都不通,邮递员也走不了。
    			//3. “接收方”的问题,如果我们这边都没问题,那么就要考虑一下是不是硬件的问题,这个就需要和供应商那边去调解
    			
    		//提示:等待超时,请检查App是否与硬件WiFi保持连接...
    	}
    	
    

    如果多次重发都未收到回应,那就要变更一下策略了,毕竟在某些硬性条件不满足的情况下,无论你发送多少次都是无效的。

    4、接收“回信”

    当硬件收到我们发送过去的指令后,就会进入第二步,硬件向App发送硬件备信息。那么该如何接收回应呢

    使用Runnable开启一个线程服务用来监听硬件的回应

      /**
         * 开启监听
         */
        private static class SearchListener implements Runnable{
    
            MyApplication myApplication;//存放全局变量
            Activity activity;//页面activity
            DatagramSocket receiverSocket;//接收socket
            Integer index=0;//用来判断是第几次的数据交互,因为每次发送的数据都不一样
            String ssid;//App设置的SSID
            String pass;//App设置的热点密码
    	}
    	
    	//实现Runnable内的方法
    	@Override
        public void run() {
            
    	}
    

    接下来创建一个构造器给外部调用,并且将所需的参数传递进来

    	//构造函数,开放给外部调用,同时传入需要的参数
        SearchListener(Activity activity,Integer index,String ssid,String pass){
            this.index = index;
            this.ssid = ssid;
            this.pass = pass;
            this.myApplication= (MyApplication) activity.getApplication();
        };
    

    上面的操作都是为了给下一次发送的指令作准备工作,但是接收其实用不到这些。

    接收这里同样使用的是DatagramSocket,写在实现的run方法中

    按照硬件文档说明,硬件会向发送方的原端口回应信息,在上面我们发送的时候开启的本地端口是13047,所以这里同样使用13047端口来监听回应的指令

    
    		@Override
            public void run() {
                Log.e("监听提示:","监听已启动...");
                try {
                	//建立 13047 端口的DatagramSocket对象
                    receiverSocket = new DatagramSocket(13047);
                    //接收数据缓冲区大小
                    byte[] receiverData = new byte[1024];
                     //使用 DatagramPacket 对象设置接收对象参数
                    DatagramPacket receiverPacket = new DatagramPacket(receiverData,receiverData.length);
    
                    //使用DatagramSocket对象接收数据包
                    //该方法会阻塞,直到接收到数据报文
                    try {
                        receiverSocket.receive(receiverPacket);
                    }catch(SocketTimeoutException e){
                        e.printStackTrace();
                    }
                    
    	//使用receive方法来接收之后,线程会进入阻塞状态,所以在接收到回应之前,代码都不会往下执行 
    //------------------------------------------------------------------------------------
    
                    //拆解接收到的数据包
                    //获得接收到的IP地址
    
                    //数据缓冲区
                    byte[] buffer = receiverPacket.getData();
                    //将接受到的二进制数据转换为16进制字符串
                    String datas = EncodingUtil.toHexString(buffer)
                    //接收到回应后,就将计时器关闭
    				timerAuto.cancel();
                   
    
                } catch (SocketException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
    
            }
    

    到这里,我们就已经实现了接收硬件的“回信”,而且在之前我们已经写好了计时器,如果超时都未收到回应,那就关闭监听,再次发送指令。若多次发送都未收到回应,那就给用户相应的提示。

    5、多次数据交互

    既然目前App发送指令给硬件,硬件也能够收到并且回应,说明我们已经完成了一个完整的流程。按照最开始的那张流程图,可以将整个连接配置过程分为3次发送和2次接收。既然有多次类似的操作,那么代码就可以封装起来,方便复用

    首先是发送的方法,需要传递SSID和密码等参数,所以封装成sendBroadcast()方法如下:

    
    	/**
         * 发送指令
         * @param msg  初始指令
         * @param index  判断是第几次发送
         * @param ssid  热点的SSID
         * @param pass  热点的密码
         * @throws IOException
         */
    	private static void sendBroadcast(String msg, int index, final String ssid, final String pass) throws IOException {
            DatagramSocket sendSocket = new DatagramSocket(13047);
            String MSG_STR = msg.replace(" ","");//先空格
            //生成校验位
            String CRC8_ITU = EncodingUtil.CRC8(EncodingUtil.hexToByte(MSG_STR));
            //组合成完整的指令
            MSG_STR = MSG_STR + CRC8_ITU.toUpperCase();
    
           
            byte[] data = EncodingUtil.hexToByte(msgs);
            //创建DatagramPacket对象,用来存放发送的数据,端口和ip
            DatagramPacket packet = new DatagramPacket(data,data.length);
            packet.setPort(58121);
            packet.setAddress(InetAddress.getByName("255.255.255.255"));
    
            //使用DatagramSocket的send方法,发送数据包
            sendSocket.send(packet);
            sendSocket.close();
    
    		//如果不是第三次发送的指令,就开启监听,接收硬件的回应
            if(index!=3){
            	//创建接收监听对象
                receiverListener = new SearchListener(myActivity,index,ssid,pass);
                //开启监听线程
                new Thread(receiverListener).start();
            }else{
            	//如果是第三次发送,发送完后就可以不用接受回应了
            	//直接提示用户配置完成,打开手机热点
            }
        }
    
    

    接收监听在上面就已经实现了,接下来我们就需要根据传递进来的index完成不同的操作

    
    	//使用receive方法来接收之后,线程会进入阻塞状态,所以在接收到回应之前,代码都不会往下执行 
    //------------------------------------------------------------------------------------
    
                    //拆解接收到的数据包
                    //获得接收到的IP地址
    
                    //数据缓冲区
                    byte[] buffer = receiverPacket.getData();
                    //将接受到的二进制数据转换为16进制字符串
                    String datas = EncodingUtil.toHexString(buffer)
                    //接收到回应后,就将计时器关闭
    				timerAuto.cancel();
    
    
    				
    
    
    				
    				if(index==1){
    					//如果是第一次发送指令,硬件应该会回应硬件有关的一些信息
    					//那么我们可以通过这些信息来生成第二次发送的指令
    					//对接收到的数据进行处理,得到硬件版本、IP、端口等所需要的参数
    				    //  -----  数据处理  略 ---------
    				    
    				    String Msg = "";//生成的第二次初始指令
    
    					//调用发送指令的方法
                        exit();//关闭监听的socket,以免出现端口号被占用的问题
                        //调用发送指令的方法,这次的index为2
                        sendBroadcast(Msg,2,ssid,pass);
                        
                      
    				}else if(index==2){
    					//  -----  数据处理  略 ---------
    				
    					exit();//关闭监听的socket,以免出现端口号被占用的问题
    					//生成第三次发送指令
    					String Msg = "";//生成的第二次初始指令
    					//调用发送指令的方法,这次的index为3
    					sendBroadcast(Msg ,3,ssid,pass);
    				}
    
    
    

    我们来看看整体的代码执行流程
    在这里插入图片描述

    6. 小结

    在与硬件的对接开发时,很多没有接触过这方面的同学可能会感到害怕和不知所措,毕竟我们学习的是软件技术专业,很少跟硬件打交道。但是其实这一路流程走下来,用到的技术点大多都是我们所熟知的,比如socket、UDP广播、计时器等等。

    DatagramSocket
    Java使用DatagramSocket代表UDP协议的Socket,DatagramSocket本身只是码头,不维护状态,不能产生IO流,它的唯一作用就是接收和发送数据报,Java使用DatagramPacket来代表数据报,DatagramSocket接收和发送的数据都是通过DatagramPacket对象完成的。

    最重要的是在开发之前,一定要熟读相关的硬件文档,多多了解硬件的操作流程、开放接口等相关的知识。将硬件当做是一个工具,发送指令是为了告诉它我们需要什么,但是它不能听懂我们日常这种对话,所以处理硬件和使用者关系,就是我们开发者的职责所在。

    展开全文
  • 软件测试经典面试题 (超实用)

    热门讨论 2012-02-16 13:48:08
    1、什么是兼容性测试?兼容性测试侧重哪些方面? 5 2、我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问题...17、你在五年内个人目标职业目标分别是什么? 36 18、你怎样做出自己职业选择? 36
  • 局域网管理监控软件

    2013-09-14 12:26:22
    局域网管理监控软件是南京网亚计算机有限公司研发的一款局域网员工机电脑监视、控制与管理软件为现代企业的管理人员量身定做的企业局域网监控软件。WorkWin的局域网监控控制功能可以大幅度提高办公室工作效率,...
  • Ghost 8.3 系统备份软件

    2009-11-13 10:29:50
    LPT 通过并口传送备份文件,下面有两个选项:slave master, 分别用以连接主机客户机。 网络基本输入输出系统 NetBios LPT 相似, 也有 slave master 两个选项, 作用与 LPT 相同。 先平时一样将要 ...
  • 过去科技世界,最核心科技赛道芯片、服务器操作系统,而在过去40年,中国却很少有企业能够在这个核心科技赛道占据一席之地。云计算出现,从软件层面颠覆了硬件厂商统治,亚马逊、微软、阿里云也从中...

    深度解析|阿里云靠什么与亚马逊一战

    过去的科技世界,最核心的科技赛道是芯片、服务器和操作系统,而在过去40年,中国却很少有企业能够在这个核心的科技赛道占据一席之地。云计算的出现,从软件层面颠覆了硬件厂商的统治,亚马逊、微软、阿里云也从中突围成为了最重要的科技公司,云计算也正在成为未来最重要的科技赛道。

    在这条最重要的科技赛道上,正在形成全新的两极:亚马逊背靠欧美市场,阿里云背靠亚太市场,分别占据统治地位。撇开地缘政治问题,这将是未来十年内最激烈的战场。

    阿里云、亚马逊:此起彼伏

    根据Gartner最新数据显示,亚马逊+微软+阿里云占据了全球云计算市场72%的市场份额。

    从全球云计算市场的格局来看,一方面头部效应越发明显,与此同时一些云计算服务厂商也在逐渐被淘汰出局。近日国内的苏宁云、美团云便相继离场,宣布终止公有云服务。科技市场往往日新月异,云计算行业也从来只见新人哭、不见巨头掉,无法进入前三或者前四就意味着已经出局。

    另一方面,头部玩家的竞争也越发激烈,彼此之间的差距也在逐步缩小,亚马逊王座越来越松动。在Gartner的最新报告中,云厂商亚马逊的份额已经连续两年下降,从2018年48%下降到45%。而阿里云和微软则是不断上扬。尤其是阿里云,市场份额增速最快,从2018年的7.7%,上涨至9.1%。

    更加值得关注的是,在增长更快的亚太市场,也是阿里云的根据地,阿里云份额再次上涨,从2018年的26%上升至28.2%,接近亚马逊和微软的总和。同期,亚马逊份额则从18.2%下降至17.5%。

    深度解析|阿里云靠什么与亚马逊一战

    在中国市场,阿里云的一哥地位则进一步得到巩固。在研究机构Canalys发布的中国云基础设施服务开支中,阿里云市场份额达到了46.4% ,并且还在增长。

    深度解析|阿里云靠什么与亚马逊一战

    由此看来,阿里云与亚马逊此起彼伏的趋势也越发明显。近日,阿里云更是宣布未来三年计划再投入2000亿,这进一步展示了阿里云在全球市场挑战亚马逊的决心和信心。

    阿里云底气何在?

    有些人一提到国外的巨头,诸如苹果、亚马逊等,除了一味地吹捧还是吹捧。但国内的科技巨头也在变得越来越强大,2019年华为手机的全球市场份额已经明显超越苹果,而阿里云在全球的市场份额也确实在进一步提升,最核心的原因同样来自于云计算产品的背后实力。

    深度解析|阿里云靠什么与亚马逊一战

    在全球最权威的公有云厂商评估报告Gartner IaaS魔力象限中,阿里云的云基础设施(IaaS)连续三年榜上有名,也是中国唯一一家入围的云服务厂商。这充分证明了阿里云的IaaS能力。

    深度解析|阿里云靠什么与亚马逊一战

    阿里云数据库凭借其良好的性能与分布式能力,以及勇夺TPC桂冠的气势,目前开始快速占领云计算市场,根据Gartner全球数据库魔力象限评选结果中,阿里云成功进入“挑战者”象限,而且还在快速上升。

    深度解析|阿里云靠什么与亚马逊一战

    在Forrester的首个企业级公有云容器报告中,阿里云市场表现位居全球前三、中国第一,创造中国企业最好成绩,进入强劲表现者象限。这体现了阿里云在容器方面的优势。

    深度解析|阿里云靠什么与亚马逊一战

    在IDC发布的《IDCMarketScape:中国DevOps云服务市场2019厂商评估》报告中,阿里云云效产品凭借出色的战略规划,位于领导者象限,战略维度第一。这验证了阿里云领跑DevOps云服务市场。

    此外,在网络、CDN、存储、数据库、安全、WAF、物联网、机器学习等多个产品技术服务能力方面,阿里云都拿下多个榜单奖。这也让我们再次确认了一点,连续七年“中国第一”,连续三年“亚太第一、全球第三”的阿里云,江山都是靠实力打下来的。

    新基建新红利:阿里云对决亚马逊的新筹码

    受疫情影响,以阿里钉钉为代表的远程办公一时间成为了最火爆的应用,企业对于云服务的需求也一路攀升。而在线医疗、在线教育、电商直播的火爆更是将企业的云化、线上化推向了新高潮,这一切的幕后支撑都离不开云服务。

    深度解析|阿里云靠什么与亚马逊一战

    在疫情催生云服务需求大增的同时,中国又浩浩荡荡地启动了新基建,全面推动传统产业数字化升级。云计算作为新基建的核心技术基础,无形之中也就成为了传统产业数字化升级的核心,传统企业、政府“上云”潮再次开启,云计算市场也将迎来巨大的新红利。

    阿里云作为国内最大的云服务商,在国内云计算头部效应越发明显的大趋势下,阿里云也将成为新基建浪潮下最大的受益者。

    深度解析|阿里云靠什么与亚马逊一战

    而在政务、零售、金融、工业四个云服务未来需求增长潜力最大的行业,阿里云均已拿下了行业第一,其细分行业优势也日益凸显,阿里云未来在这四大领域还将迎来巨大的增长。

    深度解析|阿里云靠什么与亚马逊一战

    2018年,中国只有10.1%的传统企业使用了云服务,远低于美国的 49.2%。而未来五年中国传统企业云服务行业增长率将达 29.7%,这也就意味着阿里云占据主导地位的中国云服务市场未来还有巨大的增长空间。

    相比之下,亚马逊AWS所主导的美国市场,云服务却已经逐渐走向饱和。

    终极较量:主导亚太市场的阿里云极有可能反超主导欧美市场的亚马逊

    与中美市场类似的是,亚太市场的云服务饱和度也远低于欧美市场的饱和度。这也就意味着,亚太市场的云服务市场增量将大大超越欧美市场的云服务市场增量。

    阿里云作为亚太市场排名第一的云服务厂商,其在亚太市场的份额越来越高,未来在亚太市场的云服务增量也将远远超越其他云服务厂商。相比之下,尽管当前亚马逊在欧美云服务市场占据了主导地位,但是其市场增量已经非常小,未来增长空间已经十分有限,这也就是为什么亚马逊云服务增长速度放缓,营收也多次不及分析师预期的原因所在。

    另一方面,从经济的发展速度来看,亚太地区的经济增速远远高于欧美地区的经济增速。尤其是受到疫情的影响,未来几年欧美的经济增速将加速放缓。经济增速放缓,也就意味着新增的企业会越来越少,对云服务的需求也就越来越少。

    很明显,随着亚太地区经济体的经济越来越发达,新增的企业数量也会越来越多,也会有越来越多的企业对云服务有需求。主导亚太云服务市场的阿里云,其未来成长性明显要强于主导欧美云服务市场的亚马逊。

    假以时日,我坚信中国GDP必将超越美国GDP,亚太经济体也必将成为全球最大的经济体。背靠中国和亚太市场的阿里云,也必将超越背靠欧美市场的亚马逊。

    文/刘旷公众号,ID:liukuang110

    展开全文
  • 不过明确的是编写那样代码有多简单,购买它们会有多昂贵以及它们需要多么昂贵强大的硬件。如果你有什么中立观点(比如说没有被SUNMicrosoft百万美金所影响),请顺便通知我。 据我所知,JSP基于Java,...
  • 物流好比企业的消化系统:改善物流速度质量的关键BPR业务流程的优化,运用信息化手段会对业务流程产生诸多影响,改变流程顺序或实施平行化,严密监视过程的状态目标,实现不同任务过程间的集成,从而使得...
  • 27、GC是什么? 为什么要有GC?  GC是垃圾收集意思(Gabage Collection),内存处理是编程人员容易出现问题地方,忘记或者错误内存回收会导致程序或系统不稳定甚至崩溃,Java提供GC功能可以自动监测对象...
  • 测试覆盖率

    2011-10-28 11:16:51
    当记者问到迈捷实施软件测试时遇到最大障碍是什么时,武友文很爽快回答到: “一是客户意识,二是我们派出项目实施人员素质问题。”  实施软件评测项目时,客户要有接受管理软件开发流程意识。  ...
  • Java分成三种版本,分别是Java标准版(JSE)、Java微缩版JME)Java企业版(JE), 每一版本都有自己功能应用方向。 1:Java标准版:JSE( Java standard Edition) JSE( Java Standard edition)是sun公司针对桌面开发...
  • 事务处理原理 第2版

    热门讨论 2012-12-30 10:49:38
    应用程序编程人员工作理解企业想要事务做什么并编写程序完成它。系统软件应使应用程序能够在快速、高效、可伸缩可靠系统上运行。这就是本书前半部分(1~5章)主要介绍事务中间件要完成任务。第10...
  • c语言编写单片机技巧

    2009-04-19 12:15:17
    平时可以多看看相关的电子技术杂志网站,看看别人的开发经验,硬件设计方案以及他人的软件设计经验。有可能的话,还可以参加一些电子设计大赛,借此机会2--3个人合作做一个完整系统,会更有帮助。到了大四毕业设计...
  • 是会计四大基本假设之一,就是货币计量(其他三大基本假设分别是,会计主体、会计分期及持续经营),这个货币计量意思,就是我们在上面说那个意思,让你将企业东西都会成钱,就是让你钻进钱眼里,什么都要...
  • 计算机实习日记

    2011-11-26 12:22:41
    我首先的感觉就是,这应该电脑的硬件故障,不是我们的软件故障,但基于对客户负责的态度,我们帮客户检查了一下机箱,发现CPU风扇已经不转了,应该风扇先坏掉导致CPU过热而烧毁。我们建议客户更换CPU并加装更大...
  • 其主要功能是什么?  通信子网负责整个网络纯粹通信部分,资源子网即是各种网络资源(主机上打印机、软件资源等)集合。 通信子网由两个不同部件组成,即传输线交换单元。传输介质也称为电路、信道,...
  • 再次,网上招聘系统网站运行平台构建、服务器选择、ASP软件和数据库知识更实现网上招聘基础。 上述网站运行环境及其软硬件平台实现,概括和基础性,也构建网上招聘系统基本思路。通过网上求职...
  • 从技术实现上,讲解了5个android平台下完整综合实例及源代码分析,分别是rss阅读器、基于google map个人gps、豆瓣网(web 2.0)客户端、在线音乐播放器、手机信息查看助手。本书注重对实际动手能力指导,在遵循...
  • 书中内容主要集中在大多数企业常见问题之上,如安装升级到oracle database 11g数据库软件、创建数据库、导出导入数据、数据库备份与恢复、性能调优,等等。  本书还提供了dba完成本职工作必备基本uniix...
  • java 面试题 总结

    2009-09-16 08:45:34
    24、GC是什么? 为什么要有GC?  GC是垃圾收集意思(Gabage Collection),内存处理是编程人员容易出现问题地方,忘记或者错误内存回收会导致程序或系统不稳定甚至崩溃,Java提供GC功能可以自动监测对象...
  • 文件系统与数据库系统的联系:文件系统与数据库系统都计算机系统中管理数据的软件。解析文件系统操作系统的重要组成部分;而 DBMS 独立于操作系统的软件。但是 DBMS 在操作系统的基础上实现的;数据库中...
  • 解析 DBMS 一个大型的复杂的软件系统,计算机中的基础 软件。目前,专门研制 DBMS 的厂商及其研制的 DBMS 产品很多。著名的有美国 IBM 公 司的 DBZ 关系数据库管理系统 IMS 层次数据库管理系统、美国 Oracle ...
  • Informix可移植性强、兼容性好,在很多微型计算机小型机上得到应用,尤其适用于中小型企业的人事、仓储及财务管理。  Orcale数据库  美国Orcale公司研制的一种关系型数据库管理系统,一个协调服务器用于...
  • 10.1.3 使系统硬件和软件资源使用达到平衡 10.2 分析系统性能涉及人员 10.2.1 Linux系统管理人员 10.2.2 系统架构设计人员 10.2.3 软件开发人员 10.3 影响Linux性能各种因素 10.3.1 系统硬件资源...

空空如也

空空如也

1 2
收藏数 40
精华内容 16
关键字:

企业的软件和硬件分别是什么