
Java基础
技术宅--火狼
这个作者很懒,什么都没留下…
展开
-
面试官:来,聊一聊如何中断线程?
中断相关三个方法interrupt()用于线程中断,该方法并不能直接中断线程,只会将线程的中断标志位改为true。它只会给线程发送一个中断状态,线程是否中断取决于线程内部对该中断信号做什么响应,若不处理该中断信号,线程就不会中断。简而言之,就是通知线程你需要执行中断了,具体对该中断的影响需要依赖当前线程对中断的处理。(本人理解)interrupted() 与 isInterrupted() 傻傻分不清?直接上源码。public static boolean interrupted() {原创 2021-11-19 13:56:01 · 1218 阅读 · 0 评论 -
震惊啊!idea中结束Scannner输入的快捷键不是ctrl+z,也不是ctrl+c,而是ctrl+D
如下代码: public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNextInt()){ int val = sc.nextInt(); System.out.println(val); } }一直无法结束输入,尝试ctrl+c和ctrl+d都不行,搜了原创 2021-10-19 10:59:46 · 2433 阅读 · 1 评论 -
使用多态替代if/else
if/else的做法:package com.huowolf.polymorphic;public class Demo { public static void main(String[] args) { System.out.println(FruitsUtil.isNeedKnife(new Apple())); System.out.println(FruitsUtil.isNeedKnife(new Banana())); Sys原创 2021-04-22 21:28:39 · 824 阅读 · 0 评论 -
多客户端并发登录
//LoginClient.javapackage mySocket;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;/** *客户端通过键盘录入用户名 *服务端对这个用户名进行校验。 * *如原创 2014-10-21 15:53:12 · 2123 阅读 · 0 评论 -
Udp发送端和接收端
//UdpReceive.java/*定义udp的接收端。思路:1.定义udpSocket服务。通常会监听一个端口,其实就是这个接收网络应用程序定义一个数字标示。2.定义一个数据包,用来存储接收到的字节数据。因为数据包对象中有特有功能可以提取字节数据中不同数据信息。3.通过Socket服务的receive方法将收到的数据存入已定义好的数据包中。4.通过数据包对象的特有功能将这原创 2014-10-21 20:06:59 · 3385 阅读 · 0 评论 -
java序列化与反序列化
1.序列化到txt文件中//Person.javapackage com.huowolf.api;import java.io.Serializable;/* * 把对象转换为字节序列的过程称为对象的序列化。 * 把字节序列恢复为对象的过程称为对象的反序列化。 * * 任何类型只要实现了Serializable接口,就可以被保存到文件中, * 或者作为数据流通过原创 2014-11-22 22:56:40 · 887 阅读 · 0 评论 -
打印"M"型数阵
package com.huowolf.test2;import java.util.Scanner;public class M_number { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入你要生成的M型数阵的高度:");原创 2014-11-23 18:25:09 · 1010 阅读 · 0 评论 -
打印杨辉三角形
import java.util.Scanner;public class Yanghui { public static void main(String[] args) { System.out.print("请输入你要打印的杨辉三角的层数:"); Scanner sc = new Scanner(System.in); sc.close(); int height原创 2014-12-14 16:01:26 · 1257 阅读 · 0 评论 -
打印数字金字塔
package com.love.test;import java.util.Scanner;public class NumberTower { public static void print(int x){//数字三角形的高度 int i; for(i=1;i<=x;i++) { //打印空格 for(int j=1;j<=x-i;j++) {原创 2014-10-06 20:42:33 · 2679 阅读 · 0 评论 -
java的Vector用法示例
package com.huowolf;import java.util.Enumeration;import java.util.NoSuchElementException;import java.util.Vector;public class VectorTest { private static final String colors[] = {"red","whit原创 2015-04-23 23:19:37 · 1399 阅读 · 0 评论 -
LED显示模拟(java的GUI显示)
//先上效果图,每一秒改变一次颜色//原创 2015-04-20 13:27:24 · 6076 阅读 · 0 评论 -
Properties示例
package com.huowolf;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.Properties;public class RunCount { /* * 用于原创 2015-04-24 20:16:13 · 823 阅读 · 0 评论 -
一个HashMap和TreeSet综合使用的小例子
package com.huowolf;import java.util.HashMap;import java.util.TreeSet;/* * 统计字符串中每个字母出现的次数 * 输出时要求按照次数降序排序,如果出现次数相同,按照字母升序输出 * * HashMap:计数 TreeSet:排序 */public class LetterCount { pub原创 2015-07-25 15:47:26 · 1556 阅读 · 0 评论 -
TreeSet存储自定义对象,并对对象排序的两种方式
想有一个自定义对象,先搞一个Student类。//Student.javapackage com.huowolf;public class Student implements Comparable{ private String name; private int age; public Student(String name, int age) { t原创 2014-10-09 22:42:23 · 2685 阅读 · 0 评论 -
Java版贪吃蛇(比较完善的版本)
很认真的写的一个java版的贪吃蛇游戏,图形界面,支持菜单操作,键盘监听,可加速,减速,统计得分,设定运动速度,设定游戏背景颜色等!应该没有Bug了,因为全被我修改没了。哈哈。下面是项目各包及类的层次关系:游戏的主要运行界面截图如下:下面是部分代码,详细源码见此链接:http://pan.baidu.com/s/1bnubnzh//Snake类:pack原创 2015-07-03 19:50:21 · 15983 阅读 · 22 评论 -
Socket(上传文件)实例
//TextClient.javapackage mySocket;import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.ne原创 2014-10-18 21:53:33 · 810 阅读 · 0 评论 -
java版的日历程序
//MainFrame.javapackage com.huowolf.myCalender;import java.awt.BorderLayout;import java.awt.Color;import java.awt.GridLayout;import java.awt.Toolkit;import java.awt.event.ActionEvent;import j原创 2014-11-20 17:04:05 · 1306 阅读 · 0 评论 -
GUI初探--列出指定目录的内容
/*需求:列出指定目录的内容。当目录不存在时给出出错信息。建立一个Enter的键盘监听。当输完文件路径后,可以选择按Enter直接转到*/ import java.awt.*;import java.awt.event.*;import java.io.*;class myWindowDemo{ private Frame f; privat原创 2014-04-22 22:36:35 · 952 阅读 · 0 评论 -
自定义异常
/*自定义异常:需求:在本程序中,对于除数是负数也视为是错误的,是无法进行运算的。 当在函数内出现了throw抛出对象,那么就必须要给出对应的处理动作。要么在内部try catch处理。要么在函数上声明让调用者处理。 一般情况下,函数内出现异常,函数上需要声明。 如何定义异常信息呢?因为父类中已经把异常信息的操作都完成了。所以子类只要在构造时,讲异常原创 2014-04-12 22:22:07 · 1086 阅读 · 0 评论 -
自定义异常实例
在定义银行类时,若取钱数大于余额时需要做异常处理。定义一个异常类 insufficientFundsException。取钱(withdrawal)方法中可能产生异常,条件是余额小于取额。处理异常在调用 withdrawal 的时候,因此 withdrawal 方法要声明抛出异常,由上一级方法调用。翻译 2014-04-12 22:25:53 · 1530 阅读 · 0 评论 -
打印倒三角
package com.lovo.test;public class Test { public static void daosanjiao(int x){//x为倒三角的高度 for(int i=0;i<x;i++){ //1.输出空格 for(int j=0;j<i;j++){ System.out.print(" "); } //2.输出原创 2014-09-21 22:21:42 · 967 阅读 · 0 评论 -
java查找子串
import java.util.Scanner;public class zichuan{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); String s=sc.nextLine(); String s1="a"; int i,sum=0; do原创 2014-09-23 20:21:22 · 860 阅读 · 0 评论 -
MyBufferedInputStream
import java.io.*;class MyBufferedInputStream{ private InputStream in; private byte[] buf = new byte[1024]; private int pos=0,count=0; MyBufferedInputStream(InputStream in) {原创 2014-09-23 20:25:33 · 913 阅读 · 0 评论 -
java分割图片测试
import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import javax.imageio.ImageIO;public class splitIma转载 2014-09-27 14:52:28 · 989 阅读 · 0 评论 -
java单例模式笔记
package com.huowolf;/*单例设计模式:实现一个类只能存在一个对象。想要保证对象的唯一.1.为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象。2.还为了让其他程序可以访问到该类对象,只好在本类中,自定义一个对象。3.为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式。这三部分怎么用代码来体现那?1.将构造函数私有化。2.在类中创建一个原创 2014-11-07 22:35:02 · 1016 阅读 · 0 评论 -
打印菱形
package com.love.test;import java.util.Scanner;public class 菱形{ public static void lingxing(int x){//x为菱形的高度 //上三角的控制输出 int m=(x+1)/2; for(int i=m;i>0;i--){ //1.输出空格 for(int j=0;j<i-1;原创 2014-09-21 22:17:47 · 676 阅读 · 0 评论 -
java的集合框架实现栈,队列
package com.huowolf;import java.util.Stack;public class MyStack { public static void main(String[] args) { Stack stack =new Stack (); stack.add("first"); stack.push("second"); stack.push原创 2014-10-09 22:58:00 · 1199 阅读 · 0 评论 -
线程通信升级版
package com.huowolf;/* * jdk1.5升级版线程通信示例 * 将同步中的 synchronized替换成显示的Lock操作 * 将Object中的wait().notify(),notify() ,替换成了Condition对象的方法, * 该对象可以由Lock锁,进行获取。 * *本例中,实现了本方只唤醒对方的操作。 *达到生成一次消费一次的目的 */原创 2014-11-14 11:39:54 · 791 阅读 · 0 评论 -
对多线程的锁的理解
package com.huowolf;/* * 有必要加锁的前提是:有多个线程对同一数据进行多行代码操作。 * 检查方法是,1.先找出多个线程执行了那些代码块。 * 2.这些代码中有没有共同(或共享)数据。 * 3.操作该共同数据的代码是否有多行。 * 如果以上三条都满足的话。则必须要加锁(也就是同步代码块或者同步函数)。 * * * 同步函数用的哪一个锁? * 函数需原创 2014-11-16 14:24:13 · 1055 阅读 · 0 评论 -
多线程中死锁产生的演示
package com.huowolf;/*死锁的含义: * 多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。 * 由于线程被无限期地阻塞,因此程序不能正常运行。 * * 死锁出现的情形:同步中嵌套同步。 * 但也可能和谐 * * 避免死锁的一个通用的经验法则是: * 当几个线程都要访问共享资源A、B、C时,保证使每个线程都按照同样的顺序去访问它们, *原创 2014-11-16 17:13:28 · 894 阅读 · 0 评论 -
用javabean封装xml文档数据
//book.xml 冰与火之歌 乔治马丁 2014 89 English 安徒生童话 2004 77 English //Books.javapackage com.huowolf.handler;public class Books { private String name; private String原创 2014-11-18 21:07:28 · 1302 阅读 · 0 评论 -
关于StringBuffer
/*StringBuffer 是字符串缓冲区。是一个容器。特点:1.长度是可变化的。2.可以操作多个数据类型。3.最后可以通过toString方法变成字符串。 C creat U update R read D delete 1.储存 StringBuffer append():将指定数据作为参数添加到已有数据结尾处。 StringBuffer原创 2014-05-01 23:42:30 · 663 阅读 · 0 评论