5.Client-Server模式(2)-Client 在上一章,我们完成一个简单的数据库服务器,并在客户端用telnet方式成功进行通信. 本章将用Java实现客户端程序,来代替telnet. 先看代码 下面是客户端与服务器的协议: 建立连接 服务器 发送:Input your name password: 客户端 发送:用户名空格密码 服务器 发送:verify ok 客户端 发送:SQL语句 服务器 发送:查询结果 客户端 发送:exit 断开连接 这样我们模拟了一个简单的数据库服务器和客…
4.Client-Server模式(1)-Server 在上一章中,我们完成了MyDataBase.java的编写,类似于一个简单的数据库功能,提供了用户验证,查询操作. 在本章中,我们将继续扩展这个程序. 数据库的数据一般存在于远程计算机(服务器)上,由多个客户进行连接,查询操作. 我们来模拟上述操作. 要访问某一台计算机上的某个程序,我们需要如下信息: 该机器的IP地址,程序所在的端口号 如下图所示: 所以,服务器端程序需要在某个端口监听客户断程序的连接,连接成功后,和客户端发送消息进行通信…
1.环境搭建在开始写第一个Java程序之前,我们需要做一些简单的准备工作. 1.1 还记得DOS吗 我们可以通过图形界面来操作我们的电脑.但作为程序员,你首先需要学会用命令行的方式来操作电脑,因为不是所有的电脑都提供图形界面的. Windows环境下可以通过DOS来执行命令. 你只需要记住大概5个命令,即可完成电脑的基本操作. 我们首先启动DOS环境:在文件浏览器的地址栏中输入cmd,回车,如下图所示. 光标左边显示的是当前所在目录. 本教程实例均在C盘下操作,所以如果不是C盘,输入c:回车,切…
本教程的程序基于Windows开发,所以你需要有一台安装Windows操作系统的电脑. 前言本教程将带你完成Java的初学和WEB框架的开发,学完本教程,你将完成对Java的入门并且对下一步不再迷茫.学习本教程的前提:希望你简单的掌握程序语言,数据库,计算机网络知识.当然这不是必要条件,我将尽可能让你可以零基础完成本教程的学习.借用一句古言:[授人以鱼不如授人以渔],计算机的世界中每隔一段时间就会产生出新的程序语言,新的开发框架,新概念并且淘汰一些旧的程序语言,开发框架,概念等.所以掌握一个学习…
2.Hello,Java! 欢迎来到Java的世界,在上一章,我们已经完成了DOS的基本操作学习和Java的环境搭建,在本章中我们Java来完成一个简单的DOS程序. 2.1 Hello,Java! 首先,我们创建一个文件名为MyNotepad.java,保存到c:\work\001下, 文件内内容如下:(注意文件名与文件内容的大小写,以后不再提示) 然后启动DOS环境,输入如下命令: cd c:\work\001 javac MyNotepad.java java MyNotepad 可以看到…
3.用户验证与文件内容查询 在上一章中,我们完成了对指定文件内容的输出操作. 我们现在有如下格式的文件product.db id,product_name,product_detail 1,notebook,mac notebook 2,fruit,apple 我们想输出此文件的内容,可以把product.db放入c:\work\001下,然后运行 java main.MyNotepad product.db 但是,这个文件为企业的机密文件,不希望所有人都能查看到.于是,首先想到的就是加入用户名…
6.JDBC 在上一章,我们完成了MyDb数据库的简单的客户段调用.作为产品我们还封装了驱动程序,并且提供了统一的调用接口. 大家应该知道,市面上有多种数据库产品,比如Oracle,Mysql,DB2... 那么,我们是否可以将这种方式扩展到其他数据库产品中呢? 当然可以,但需要厂商来按我们的接口规则来完成自己的数据库的驱动,显然说服他们并不是很容易的事. 还好Java提供了和我们类似的方式来和数据库进行交互,并且大部分数据库厂商都实现这种方式的驱动程序. 有个专业名称叫JDBC(Java Da…
前言 之前的文章尤其是讲解GC的时候提到了很多的概念,比如内存溢出和内存泄露.并行与并发.Client模式和Server模式.Minor GC和Full GC,本文详细讲解下这些概念的区别. 内存溢出和内存泄露的区别 1.内存溢出 内存溢出指的是程序在申请内存的时候,没有足够大的空间可以分配了. 2.内存泄露 内存泄露指的是程序在申请内存之后,没有办法释放掉已经申请到内存,它始终占用着内存,即被分配的对象可达但无用.内存泄露一般都是因为内存中有一块很大的对象,但是无法释放. 从定义上可以看出,内…
JVM Server模式与client模式启动,最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升.JVM如果不显式指定是-Server模式还是-client模式,JVM能够根据下列原则进行自动判断(适用于Java5版本或者Java以上版本). 前段时间有个同事给我发了个java跟c++性能比较的文章,其中有个对比图引起了我的兴趣,意外的是,我感兴趣的不是java和c++的对比,而 是java -Server模式和java -client模式的对比.从…
部分商用虚拟机中,Java程序最初是通过解释器对.class文件进行解释执行的,当虚拟机发现某个方法或代码块运行地特别频繁的时候,就会把这些代码认定为热点代码Hot Spot Code(这也是我们使用的虚拟机HotSpot名称的由来).为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器叫做即时编译器(Just In Time Compiler,即JIT编译器).JIT编译器并不是虚拟机必需的部分,Java虚拟机规范并…