【黑马程序员】Java自学编程代码实例

合集下载

【黑马程序员】C语言程序设计学习经典实例100题(第一部分)

【黑马程序员】C语言程序设计学习经典实例100题(第一部分)

【黑马程序员】C语言程序设计学习经典实例100题(第一部分)题目一:有1、2、3、4这4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满足条件的排列。

2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++)/*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}题目二:企业发放的奖金根据利润提成。

利润(i)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。

注意定义时需把奖金定义成长整型。

2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}题目三:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

【黑马程序员】Java入门知识点、Java编程入门学习

【黑马程序员】Java入门知识点、Java编程入门学习

【黑马程序员】Java入门知识点、Java编程入门学习1、作用域public,private,protected,以及不写时的区别答:区别如下:作用域当前类同一package 子孙类其他packagepublic √√√√protected √√√×friendly √√××private √×××不写时默认为friendly2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)答:匿名的内部类是没有名字的内部类。

不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现3、Static Nested Class 和Inner Class的不同答:Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。

Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。

注:静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象4、&和&&的区别答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)5、Collection 和Collections的区别答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List.Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作6、什么时候用assert答:assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。

在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。

【黑马程序员】Java学习路线图之Javaweb学习

【黑马程序员】Java学习路线图之Javaweb学习

【黑马程序员】Java学习路线图之Javaweb学习本文介绍的是Java学习路线图第三阶段Javaweb学习目标,学完Java 学习路线图中的这一部分可以完成中小型项目的开发。

如果你跟着黑马程序员的Java学习路线图自学完成这个阶段,就可以出去找工作了。

Javaweb阶段学习目标需要掌握的核心能力:掌握Java JDBC、连接池操作熟练操作MySQL数据库熟悉Web开发中常用知识如 HTML5、CSS3、JavaScript、BootStrap、jQuery等掌握JavaWeb开发核心技术 Servlet、Listener、Filter 等熟悉Linux服务器,并安装开发常用软件Tomcat、 MySQL、Nginx等掌握同步及异步操作的JavaWeb开发,具备B/S结构软件开发能力,完成基本的JavaWeb项目熟悉基本的项目管理工具Maven的使用可解决的现实问题:具备基本的JavaWeb开发能力,熟悉Linux服务器及相关软件的使用,可完成中小型企业级项目的开发需求。

市场价值:掌握JavaWeb开发基础知识,熟悉Java基本开发环境、熟悉项目管理工具使用及Linux 服务器使用,满足Java软件开发行业的基本开发需求。

Javaweb阶段学习知识点MySQL1. 数据库的概念2. 常见的数据库软件3. MySQL数据库的安装卸载4. MySQL数据库的登录退出5. MySQL的目录结构6. SQL语句的分类7. 数据库和数据表的操作8. 数据的添加(insert)9. 数据的删除(delete)10. 数据的修改(update)11. 数据的查询(select)12. 数据的复杂查询13. 约束的使用14. 多表关系(一对一、一对多、多对多)15. 三大范式详解16. 数据库的还原和备份17. 多表查询操作18. 事务介绍19. 事务的隔离20. 数据库的用户管理和权限管理JDBC1. JDBC入门2. DriverManager类详解3. Connection类详解4. Statement类详解5. JDBC完成增删改查操作6. ResultSet类详解7. JDBC工具类的编写8. PreparedStatement类详解9. 使用JDBC完成事务管理10. 连接池的介绍11. c3p0连接池的使用12. druid连接池的使用13. 创建druid连接池工具类14. JDBCTemplate的使用HTML5&CSS31.B/S架构2.HTML基本使用3.HTML常用标签4.CSS选择器5.常用样式6.盒子模型与布局7.HTML5新特性8.CSS3新特性JavaScript1.JavaScript基本语法2.JavaScript流程控制3.数组、函数、对象的使用4.JavaScript事件绑定/触发5.JavaScript嵌入方式6.JavaScript DOM操作7.DOM API8.JavaScript BOM对象及APIjQuery1.jQuery快速入门2.jQuery语法详解3.jQuery核心函数4.jQuery对象/JavaScript对象5.jQuery选择器6.jQuery 文档处理7.jQuery事件8.jQuery动画效果9.jQuery的遍历XML1.XML用途2.XML文档结构3.XML基本语法4.DOM&SAX解析体系5.Jsoup节点查询6.Jsoup文档操作7.XPath语法8.XPath快速查询Web服务器基础1.HTTP协议2.Tomcat服务器搭建3.Tomcat目录结构解析4.Tomcat端口配置5.Tomcat启动&停止6.Tomcat&IDEA整合7.IDEA配置优化Servlet1.Servlet体系2.Servlet生命周期3.Servlet的XML配置和注解配置4.ServletConfig&ServletContext5.请求&响应6.HttpServletRequest对象和HttpServletResponse对象的API 7.重定向&转发8.中文乱码解决方案9.项目路径问题Cookie&Session1.Cookie机制2.Cookie创建&使用3.Session原理4.Session的获取及使用5.Session失效6.Session作为域对象的API7.Session活化&钝化JSP1.JSP语法2.JSP原理3.JSP脚本片段&表达式4.JSP声明&指令5.JSP九大隐含对象6.域对象使用Filter&Listener1.Filter原理及配置2.Filter生命周期3.Filter链4.Filter登录验证5.Listener原理6.WEB中八大监听器的介绍7.ServletContextListener的应用场景文件上传和下载1.文件上传原理2.文件上传必要条件3.commons-io&commons-fileupload5.文件下载原理6.文件下载响应头7.文件下载中文乱码&浏览器兼容VUE1.VUE概述和MVVM说明2.VUE入门案例3.VUE的插值表达式4.VUE的v-on绑定点击事件5 . VUE的v-on键盘事件和阻止事件默认行为6 . VUE的v-on鼠标移动事件和阻止事件传播7 . VUE中的时间修饰符8 . VUE中的v-for的使用9 . VUE中的v-model的使用10. VUE中的v-show和v-if的使用11. VUE中的声明周期12. VUE的ajax的案例Maven初级1.Maven环境搭建2.Maven构建&自动化构建3.本地仓库&中央仓库4.Maven创建Web工程5.pom.xml、依赖管理6.坐标、依赖、生命周期等7.IDEA下的Maven使用Redis1.NoSQL&Redis入门2.Redis优势3.Redis安装&启动4.Redis五大数据类型和基本操作命令5.Redis总体配置Redis.conf6.Redis持久化(RDB和AOF)7.JedisLinux1.Linux系统-基础2.Linux网络基础3.VMWare下安装Linux4.Linux命令5.Linux下Java环境的搭6.Linux下Tomcat安装和配置7.Linux下MySQL 安装与配置8.Linux下部署黑马旅游网项目Nginx1. Nginx反向代理介绍2. Nginx 下载和安装3. Nginx 编译和启动、访问4. Nginx中部署静态网站黑马程序员官网视频库地址:。

黑马程序员python程序开发案例教程第16章用户登录项目

黑马程序员python程序开发案例教程第16章用户登录项目

黑马程序员python程序开发案例教程第16章用户登录项目《黑马程序员Python程序开发案例教程》第16章:用户登录项目,将通过一个完整的用户登录项目,帮助读者掌握Python Web开发中的用户登录功能。

1. 需求分析用户登录项目需要实现以下功能:用户注册:用户可以注册账号,填写用户名、密码等信息。

用户登录:用户可以登录账号,输入用户名和密码进行验证。

密码重置:如果用户忘记密码,可以通过邮箱找回密码。

权限控制:根据用户角色或权限,限制用户访问某些页面。

2. 技术选型为了实现上述功能,我们需要选择合适的技术和框架。

在本项目中,我们将使用以下技术:Python语言:Python是一种简单易学、功能强大的编程语言,适合Web 开发。

Flask框架:Flask是一个轻量级的Web框架,可以帮助我们快速搭建Web应用程序。

SQLAlchemy:一个ORM框架,用于操作数据库。

Flask-Mail:用于发送邮件。

Flask-Login:用于处理用户登录和权限控制。

3. 开发流程数据库设计:根据需求设计数据库表结构,包括用户表、角色表等。

注册和登录功能实现:编写注册和登录的表单页面,处理表单提交,验证用户输入,存储用户信息到数据库。

密码重置功能实现:当用户忘记密码时,通过邮箱发送找回密码的链接,用户点击链接后可以重置密码。

权限控制功能实现:根据用户角色或权限,限制用户访问某些页面。

可以使用Flask-Login提供的装饰器login_required来限制未登录用户访问某些页面。

测试和部署:对项目进行测试,确保各项功能正常工作,然后将项目部署到服务器上。

4. 代码实现由于篇幅限制,这里只给出部分关键代码实现。

完整的代码实现请参考《黑马程序员Python程序开发案例教程》的配套源代码。

注册表单页面():```html<form action="/register" method="post"><label for="username">Username:</label><input type="text" name="username" required><label for="password">Password:</label><input type="password" name="password" required><input type="submit" value="Register"></form>```处理注册请求的Python代码():```pythonfrom flask import Flask, render_template, request, redirect, url_for, flash, sessionfrom flask_sqlalchemy import SQLAlchemyfrom flask_mail import Mail, Messagefrom import generate_password_hash, check_password_hashfrom flask_login import UserMixin, LoginManager, login_user, logout_user, login_required, current_userimport random, stringapp = Flask(__name__)['SECRET_KEY'] = 'your secret key' 设置秘钥以保护应用程序的安全性。

黑马程序员JAVA编程阶梯:基础篇之第八章

黑马程序员JAVA编程阶梯:基础篇之第八章

【济南中心】JAVA编程阶梯:基础篇之第八章代码块代码块概述:* 在Java中,使用{}括起来的代码被称为代码块。

代码块分类:* 根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)。

常见代码块:* a:局部代码块在方法中出现;限定变量生命周期,及早释放,提高内存利用率* b:构造代码块(初始化块)在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行* c:静态代码块在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。

一般用于加载驱动[Java] 纯文本查看复制代码?0102 class Text { static {03040506070809101112131415161718192021222324 System.out.println("静态代码块");}{System.out.println("构造代码块");}public Text() {System.out.println("构造方法");}}public class Demo {static {System.out.println("Demo静态代码块"); }public static void main(String[] args) {System.out.println("我是main方法");Text s1 = new Text();Text s2 = new Text();2526}}运行结果:可以看出,执行顺序静态代码块>构造代码块>构造函数面向对象之继承继承(extends)概念:让类与类之间产生关系,子父类关系继承的好处:* a:提高了代码的复用性* b:提高了代码的维护性* c:让类与类之间产生了关系,是多态的前提继承的弊端:* 类的耦合性增强了。

【黑马18期Java毕业生】黑马程序员Java全套资料+视频+工具

【黑马18期Java毕业生】黑马程序员Java全套资料+视频+工具

【⿊马18期Java毕业⽣】⿊马程序员Java全套资料+视频+⼯具Java学习路线图引⾔:⿊马程序员:深知⼴⼤爱好Java的⼈学习是多么困难,没视频没资源,上⽹花钱还⽼被骗。

为此我们历时⼀个⽉整理这套Java学习路线图,不管你是不懂电脑的⼩⽩,还是已经步⼊开发的⼤⽜,这套路线路你都值得拥有,⼩⽩看上⾯的视频可以成功学会Java并且顺利⼯作,⼤神看了上⾯的资源肯定会谆谆乐道,路线图的宗旨就是分享,专业,便利,让喜爱Java的⼈,都能平等的学习。

从今天起不要在找借⼝,不要再说想学Java却没有资源,赶快⾏动起来,Java等你来探索,⾼薪可能只差下载观看了。

获取更多资源+学习交流+问题解答,就加QQ:2212232413⼀、Java学习路线图—流程篇:⼆、Java学习路线图—视频篇:1、第⼀阶段-Java基础⼊门Java视频篇第⼀阶段-Java基础⼊门本阶段PHP课程共计11个知识点,2个免费学习视频推荐1、周期与⽬标:学习周期:35天学完后⽬标:可进⾏⼩型应⽤程序开发,对数据库进⾏基本的增删改查管理2、知识点:1)计算机基础知识(理解)计算机基础、DOS常⽤命令、Java概述、JDK配置、环境变量配置、Java程序⼊门2)编程基础(掌握)常量与变量、数据类型、运算符、流程控制语句、⽅法、数组3)⾯相对象(重点)类与对象、封装、继承、多态、抽象类、接⼝4)常⽤类(理解)常⽤类介绍、正则表达式5)集合(重点)Collection集合、List集合、Set集合、Map集合6)异常(理解)异常处理⽅式、⾃定义异常7)IO(掌握)File类、递归、字节流、字符流、转换流、缓冲流8)多线程(理解)多线程、线程池9)⽹络编程(理解)⽹络编程10)反射(理解)反射11)MySQL及JDBC开发(重点)MySQL数据库、JDBC、DBUtils、DBCP连接池3、该阶段免费配套视频1)(此免费视频对应上述1,2,3,4,5,6,7,8,9,10知识点)2)》(此免费视频对应上述1,2,3,4,5,6,7,8,9,10知识点)4、精品推荐视频张孝祥09年Struts开发视频教程张孝祥_Java⾼新技术2、第⼆阶段-JavaWeb阶段Java视频篇第⼆阶段-JavaWeb阶段本阶段PHP课程共计4个⼤知识点,4个免费学习视频推荐1、周期与⽬标:学习周期:33天学完后⽬标:可以仿制任何⽹站前端页⾯,解决⽹页浏览器兼容性问题,解决PC端和移动端兼容性问题;使⽤前端脚本进⾏相关⽹页功能特效编写,使⽤JavaWeb核⼼技术轻松写出任何⽹站功能模块,使⽤JavaWeb⾼级部分知识解决⽹站的相关⾼并发问题,⽆压⼒胜任javaEE开发⼯程师职位。

黑马程序员JavaEE基础阶段必会案例NO.14

黑马程序员JavaEE基础阶段必会案例NO.14

黑马程序员JavaEE基础阶段必会案例NO.14黑马程序员课程内容丰富多样,每个知识点我们都设计有新奇的案例让大家练习。

黑马程序员训练营的课程也是案例驱动教学,每天都会进行大量的代码练习。

今天我们就来一起做一个基础阶段第7天的一个小案例。

案例要求:分析以下需求,并用代码实现:写一个宠物类:Pet属性:物种:kind颜色:color年龄:age行为(方法):get set 构造吃东西:eat测试类:创建一个宠物对象猫黄色2岁吃鱼创建一个宠物对象狗黑色4岁吃狗粮案例分析:我们要用到的知识点:面向对象标准类的创建,快速生成get set 方法和构造方法,创建对象调方法分析完一个大概以后我们先回顾一下知识点:标准类属性:数据类型和私有化private方法:set get 参数返回值创建一个标准类:1 先写属性2 再写get set方法快捷键:alt + shift + s3 构造方法alt + shift + s封装思想:银行柜台是一种封装:目的是保护里面人员和财产的安全类和方法是一种封装:目的是保护里面数据的安全面向对象:什么是对象什么是类?类是一个模板,对象是一个具体的东西生孩子,生下来才有名字和其他属性生孩子相当于创建对象:Student s = new Student();s.setAge(23);s.setName("张三");局部变量和成员变量位置:成员变量写在类中方法外;局部变量写在方法中或者方法声明上范围:成员变量范围大,整个类。

局部变量的范围方法中构造方法:包括有参构造、空参构造如果不写构造方法系统会给我们提供一个空参构造如果写了有参构造,系统就不会提供空参构造了,需要我们自己写空参构造方法的2个特点:1 没有返回值类型连void都没有2 方法名和类名相同给属性赋值有2种方法:1 new 空参构造+ set 方法2 new 有参构造好,接下来,我们就开始写代码咯~ 首先写个标准类:[Java] 纯文本查看 复制代码?01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 public class Pet {[/align]private String Color;private String Kind;private int age;public String getColor() {return Color;}public void setColor(String color) {Color = color;}public String getKind() {return Kind;}public void setKind(String kind) {Kind = kind;17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 }public intgetAge() {return age;}public void setAge(int age) {this.age = age;}public Pet(String color, String kind, int age) {super();Color = color;Kind = kind;this.age = age;}public Pet() {super();}public void eat(String food){System.out.println("一只"+this.age+"岁大的"+this.Color+this.Kind+"在吃"+food); }}标准类的书写已经完成,我们使用快捷键让我们速度非常快,这里要注意的是自定义方法eat 的书写,如何把各个属性拼接起来。

黑马程序员JavaEE基础-冒泡排序

黑马程序员JavaEE基础-冒泡排序

黑马程序员JavaEE根底-冒泡排序今天给大家详细讲解一个案例:数组冒泡排序。

具体是这样的:有一个数组int[] arr = {24, 69, 80, 57, 13}; 把这个数组按从大到小的顺序排列。

我们冒泡排序的思路是这样的:从头开始两两比拟,也就是0索引和1索引的元素比拟,如果1索引比拟大就交换位置,然后1索引和2索引元素比拟,以此类推。

大的数组就像水里的泡泡一样,越接近水面气泡越大。

好的,让我们画几个泡泡吧!这是数组原来的样子,我们按照数字的大小画了泡泡。

一个泡泡从水里冒出到水面,随着压强的减小,气泡是越来越大的,所以我们这个看着就不太对啦。

我们开始排序吧。

[Java] 纯文本查看 复制代码?1 2 for (int i = 0; i <- 1; ifor (int j = 0; j < - 1 - i; j++) {// -1为了防止索引越界,-i 为了提高效率〔后面排好序的就不比拟了〕3 4 5 6 7 8 9 if (arr[j] > arr[j + 1]) {// j 元素跟j+1比拟int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}第一次比拟:24和69比拟-交换,24和80比拟-交换,24和57比拟-交换,24和13比拟-不交换,因此第一次遍历之后顺序为:我们发现13 、24、57的顺序已经排好。

接下来我们继续分析排序步骤:69和80比拟-交换,69和57比拟-不交换,57和24比拟-不交换,24和13比拟-不交换。

至此我们就排好啦,通过图片是不是很直观就明白了冒泡排序的过程?哈哈~。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【黑马程序员】Java自学编程代码实例《毕向东Java基础视频教程_适合初学者入门》完整视频:/course/7.html?1912sxkqq课程资料:https:///s/1jAjI85SlUTlrTuF_J2QNeQ 提取码:4bfg135、写一个Singleton出来Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。

一般Singleton模式通常有几种种形式:第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。

public class Singleton {private Singleton(){}//在自己内部定义自己一个实例,是不是很奇怪?//注意这是private 只供内部调用private static Singleton instance = new Singleton();//这里提供了一个供外部访问本class的静态方法,可以直接访问public static Singleton getInstance() {return instance;}}第二种形式:public class Singleton {private static Singleton instance = null;public static synchronized Singleton getInstance() {//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次//使用时生成实例,提高了效率!if (instance==null)instance=new Singleton();return instance; }}其他形式:定义一个类,它的构造函数为private的,所有方法为static的。

一般认为第一种形式要更加安全些136、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?答:父类:package test;public class FatherClass{public FatherClass(){System.out.println("FatherClass Create"); }}子类:package test;import test.FatherClass;public class ChildClass extends FatherClass {public ChildClass(){System.out.println("ChildClass Create"); }public static void main(String[] args){FatherClass fc = new FatherClass(); ChildClass cc = new ChildClass();}}输出结果:C:\>java test.ChildClassFatherClass CreateFatherClass CreateChildClass Create137、内部类的实现方式?答:示例代码如下:package test;public class OuterClass{private class InterClass{public InterClass(){System.out.println("InterClass Create"); }}public OuterClass(){InterClass ic = new InterClass();System.out.println("OuterClass Create");}public static void main(String[] args){OuterClass oc = new OuterClass();}}输出结果:C:\>java test/OuterClassInterClass CreateOuterClass Create再一个例题:public class OuterClass {private double d1 = 1.0;//insert code here}You need to insert an inner class declaration at line 3. Which two inner class declarations arevalid?(Choose two.)A. class InnerOne{public static double methoda() {return d1;}}B. public class InnerOne{static double methoda() {return d1;}}C. private class InnerOne{double methoda() {return d1;}}D. static class InnerOne{protected double methoda() {return d1;}}E. abstract class InnerOne{public abstract double methoda();}说明如下:一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。

故A、B 错二.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;return d1 出错。

故D 错三.非静态内部类的非静态成员可以访问外部类的非静态变量。

故C 正确四.答案为C、E138、Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示?答:Server端程序:package test;import .*;import java.io.*;public class Server{private ServerSocket ss;private Socket socket;private BufferedReader in;private PrintWriter out;public Server(){try{ss=new ServerSocket(10000);while(true){socket = ss.accept();String RemoteIP = socket.getInetAddress().getHostAddress();String RemotePort = ":"+socket.getLocalPort();System.out.println("A client come in!IP:"+RemoteIP+RemotePort);in = new BufferedReader(newInputStreamReader(socket.getInputStream()));String line = in.readLine();System.out.println("Cleint send is :" + line);out = new PrintWriter(socket.getOutputStream(),true);out.println("Your Message Received!");out.close();in.close();socket.close();}}catch (IOException e){out.println("wrong");}}public static void main(String[] args){new Server();}};Client端程序:package test;import java.io.*;import .*;public class Client{Socket socket;BufferedReader in;PrintWriter out;public Client(){try{System.out.println("Try to Connect to 127.0.0.1:10000");socket = new Socket("127.0.0.1",10000);System.out.println("The Server Connected!");System.out.println("Please enter some Character:");BufferedReader line = new BufferedReader(newInputStreamReader(System.in));out = new PrintWriter(socket.getOutputStream(),true);out.println(line.readLine());in = new BufferedReader(new InputStreamReader(socket.getInputStream()));System.out.println(in.readLine());out.close();in.close();socket.close();}catch(IOException e){out.println("Wrong");}}public static void main(String[] args){new Client();}};139、用JAVA实现一种排序,JAVA类实现序列化的方法(二种)?如在COLLECTION框架中,实现比较要实现什么样的接口?答:用插入法进行排序代码如下package test;import java.util.*;class InsertSort{ArrayList al;public InsertSort(int num,int mod){al = new ArrayList(num);Random rand = new Random();System.out.println("The ArrayList Sort Before:");for (int i=0;i<num ;i++ ){al.add(new Integer(Math.abs(rand.nextInt()) % mod + 1)); System.out.println("al["+i+"]="+al.get(i));}}public void SortIt(){Integer tempInt;int MaxSize=1;for(int i=1;i<al.size();i++){tempInt = (Integer)al.remove(i);if(tempInt.intValue()>=((Integer)al.get(MaxSize-1)).intValue()) {al.add(MaxSize,tempInt);MaxSize++;System.out.println(al.toString());} else {for (int j=0;j<MaxSize ;j++ ){if(((Integer)al.get(j)).intValue()>=tempInt.intValue()) {al.add(j,tempInt);MaxSize++;System.out.println(al.toString());break;}}}}System.out.println("The ArrayList Sort After:"); for(int i=0;i<al.size();i++){System.out.println("al["+i+"]="+al.get(i));}}public static void main(String[] args){InsertSort is = new InsertSort(10,100);is.SortIt();}}140、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。

相关文档
最新文档