零、前言 1.本文不是大讲特讲UDP和TCP的区别,或者其流程,只是基于此作些小测试 2.完成两个计算机、手机、计算机与手机之间的信息数据传输 3.把控制台输出及GUI操作 以及Android展现形式...(给网络应用定义数字标识--便于该应用程序处理传来数据过来) 2---定义一个数据包,因为要存储接收到的字节数据(数据包对象中有更多功能可以提取字节数据中的不同数据信息) 3---通过socket服务的...4---通过数据包对象的特有功能。将这些不同的数据取出。打印在控制台上。 5---关闭资源。...2.打开服务端后,客户端会接收到服务端数据 3.如果客户端在其他的电脑上,对应好IP和端口,也可以打印到其他电脑上 ?...()); System.out.println(sb.toString()); } //5:关闭资源
基于Java图形界面的IPV4与网址的地址解析器 效果图 正则判断IPV4地址 //正则判断是不是ipv4地址 a.b.c.d public static boolean isIPv4(String...JButton jb1 = null;//确认按钮 JTextArea jta = null;//显示结果的文本域 public test02() { this.setTitle("...InetAddress.getAllByName(data); StringBuffer str = new StringBuffer(); jta.setText("解析成功,结果...:"+(new Date().toString())+"\n"); for (InetAddress net:allByName) { jta.append(String.valueOf...:"+(new Date().toString())+"\n"); for (InetAddress net:allByName) { jta.append(String.valueOf
先进行专栏介绍 本专栏是自己学Java的旅途,纯手敲的代码,自己跟着黑马课程学习的,并加入一些自己的理解,对代码和笔记 进行适当修改。...定义 public final class Integer extends Number implements Comparable { // 类的成员变量和方法 } 分析 Integer...toString():返回Integer对象的字符串表示。...基本类型包装类 将基本数据类型封装成对象的好处是可以通过对象调用方法操作数据 常用操作:用于基本数据类型与字符串之间的转换 byte->Byte short->Short int->Integer..."); return; } //每次根据数字给出提示 int guessNumber
public class ServerThread extends Thread { ServerSocket serverSocket; // ClientThread维持服务器与单个客户端的连接...BroadCast(this); broadcast.start(); } //一旦监听到有new Socket(ip, port)就创建ClientThread来维持服务器与客户端的连接...java.io.IOException; import java.net.Socket; public class ClientThread extends Thread { // 服务器和单个客户端的连接...("与服务器断开连接!")...("与服务器断开连接!")
当时接触 Reactive 只能算上一种间接的接触,根据 Hystrix 特性来理解 Reactive 技术,感觉上,Hystrix 超时和信号量等特性与 Java 并发框架(J.U.C)的关系密切,进而认为...观点归纳: 流式数据容量难以预判 异步编程复杂 数据源和消费端之间资源消费难以平衡 此观点与 Reactor 相同的部分是,两者均认为异步编程复杂,而前者还提出了数据结构(流式数据)以及数据消费问题。...什么是 Reactive Programming 关于什么是 Reactive Programming,下面给出六种渠道的定义,尝试从不同的角度,了解 Reactive Programming 的意涵。...Spring 认为 Reactive 和非阻塞通常并非让应用运行更快速(generally do not make applications run faster),甚至会增加少量的处理时间,因此,它的使用场景则利用较少的资源...ReactiveX 所描述的使用场景与 Spring 的不同,它没有从性能入手,而是代码可读性和减少 Bugs 的角度出发,解释了 Reactive Programming 的价值。
,换上一个带有Insets的,至于为什么去看WindowMouseListener类 new WindowLocationListener(this); new WindowMouseListener...* 返回状态,注意此方法和setStates方法区别与JFrame中的setState()和getState()方法 */ public AHFBodyState getStates() {...static final AHFBodyState HIDDEN = new AHFBodyState("hidden"); // 窗体处于隐藏状态 public String toString(...// 首先获得屏幕的大小和窗体的坐标 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Point hiddenPoint...以提高鼠标进入和离开的灵敏度 frame.addWindowFocusListener(this); // 注册一个焦点侦听器到窗体上 timer
.*; 4 public class JComboBoxFrame extends JFrame 5 { 6 private JComboBox cb = new JComboBox();...add(cb); 31 } 32 33 public static void main(String[] args) 34 { 35 JFrame...查找了一些资料发现,与ItemListener类中的itemStateChanged()事件的itemState有关,itemState在这里的状态有两个,Selected 和 deSelected(即选中和未被选中...= 0) { // ==0表示选中的事第一个 6 String content = comboBox.getSelectedItem().toString(); 7...System.out.println("index222=" 8 + index + ", content=" + content); 9 } 10
大家好,又见面了,我是你们的朋友全栈君。 只设计了一部分 全部的太多了。会慢慢更新增加。...使用纯面向对象的java语言作为开发语言 在sql server 2005新建一个名为Student的数据库,在下面新建一个名为stu的表 再新建一个名为login的表 存贮账号 密码 当然 列名你可以随便写...我的修改等等都是根据学号的。...(); m++; } con.close(); } catch(SQLException e){ System.out.println("请输入正确的表名"+e);...其实代码不多,我每个删除 更新 添加 查看 查找 之所以又写了一个删除 更新 添加 查找函数 因为我还会往下写的。。在后面更新 会 查找课程信息 成绩信息 什么的直接调用函数就行了。所以不要嫌多。。
为组件设置边框 很多情况下,我们常常喜欢给不同的组件设置边框,从而让界面的层次感更明显,swing中提供了Border对象来代表一个边框,下图是Border的继承体系图: 特殊的Border:...add方法是在给工具条添加一个工具按钮,为什么传递的是一个事件监听器呢? ...Swing提供了JColorChooser和JFileChooser这两种对话框,可以很方便的完成颜色的选择和本地文件的选择。...与 FileDialog 不同的是 , JFileChooser 无须依赖于本地平台的 GUI , 它由 100%纯 Java 实现 , 在所有平台 上具有完全相同的行为,并可以在所有平台上具有相同的外观风格...,不同类型对话框的返回值如下: showMessageDialog: 无返回值 。
f = new JFrame("demo"); Box box = Box.createHorizontalBox(); //创建Box 类对象 //f.add(tree...(); } /** * 发送http POST请求 * * @param * @return 远程响应结果 */ public...,节点的显示文本就是toString public String toString() { return name; } public String getName...; } } 解决启动乱码: 新建start.bat.输入下面两行 java -Dfile.encoding=utf-8 -jar your.jar pause 和jar...()报null指针错误 必须在事件处理线程中操作Swing组件,如果像你的程序中那样需要在别的线程中操作Swing组件的话,要使用下面这样的方法: SwingUtilities.invokeLater
,我们输入javax.swing.JFrame,那么运行结果如下: public void javax.swing.JFrame.remove(java.awt.Component) public...通过上面代码,大家可以知道编译工具为什么能够一按点就能列出用户当前对象的属性和方法了。它是先获得用户输入对象的字符串,然后利用反射原理来对这样的类进行自审,从而列出该类的方法和属性。...这样的话,它会把该类的静态方法和静态属性,以及静态代码全部加载到内存中。但这时候,对象还没有产生。所以为什么静态方法不能访问非静态属性和方法。因为静态方法和属性产生的时机在非静态属性和方法之前。...Constructor类:提供关于类的单个构造方法的信息以及对它的访问权限。这个类和Field类不同,Field类封装了反射类的属性,而Constructor类则封装了反射类的构造方法。...经过调试,查资料,结合自己的推测和理解,似乎是明白了一些。现与大家分享讨论。
、NIO、AIO 实际通信需求下,要根据不同的业务场景和性能需求决定选择不同的I/O模型 2.2 I/O模型 Java BIO 同步并阻塞(传统阻塞型),服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理...=null){ System.out.println("服务端收到:"+line); } } } 小结 在以上通信中,服务端会一直等待客户端的消息,因为读取完一行数据后...,我们需要解决客户端到客户端的通信,也就是需要实现客户端与客户端的端口消息转发逻辑。...登陆输入服务端ip和用户名后,要请求与服务端的登陆,然后立即为当前客户端分配一个读线程处理客户端的读数据消息。因为客户端可能随时会接收到服务端那边转发过来的各种即时消息信息。...客户端登陆完成,服务端收到登陆的用户名后,会立即发来最新的用户列表给客户端更新。
实现Runnable接口的程序会创建一个Thread对象,并将Runnable对象和Thread对象相关联。...实例,使用上述构造方法就可以将Runnable实例与Thread实例相关联。 ...、休眠状态、阻塞状态和死亡状态。...Thread类中提供一种礼让的方法,使用yield()方法表示,它只是给出当前正处于运行状态下的线程的一个提醒,告诉它可以将资源让给其他线程,但是这仅仅是一种暗示,没有任何机制保证当前线程会将资源礼让。...在多任务操作系统中,每个线程都有一小段的CPU时间片运行,在时间结束后,将轮换到另一个线程进入运行状态,这时系统会选择与当前线程优先级相同的线程予以运行。
大家好,又见面了,我是你们的朋友全栈君。 桌面小游戏 下面分成四个步骤来实现项目 第一步:创建项目和窗口。 第二步:加载两张图片(ball.png和desk.jpg)。...) { System.out.println("被调用"); BallGame game=new BallGame(); game.launchFrame(); } } 运行结果...double x=100;//小球横坐标 double y=100;//小球纵坐标 //画窗口的方法:加载小球与桌面 public void paint(Graphics g){...y=100;//小球纵坐标 boolean right=true;//判断小球方向 //画窗口的方法:加载小球与桌面 public void paint(Graphics g){...//判断小球方向 //画窗口的方法:加载小球与桌面 public void paint(Graphics g){ System.out.println("窗口被画了一次!!")
Java并发模型 Reactive Reactive是一种编程方式,由不同的方式来实现 RxJava : Reactive Extensions Reactor : Spring WebFlux Reactive...归纳 阻塞导致性能瓶颈和浪费资源 增加线程可能会引起资源竞争和并发问题(可见性问题,原子性问题) 并行的方式不是银弹(不能解决所有问题) 阻塞的弊端 由以下场景来说明 ?...耗时: 2002 毫秒 [线程: pool-1-thread-3] loadOrders() 耗时: 3003 毫秒 load()总耗时:3059毫秒 由结果可知,程序改造为并行加载后,性能和资源利用率得到提升...它跟第一个DataLoader的不同在于,DataLoader是全部由主线程去阻塞执行的,而这里如果不使用join()则肯定为非阻塞的,只不过join()会阻塞,这个是线程相关的常识,具体可以参考线程,...但是这样会造成异步线程池的线程数并发量比较大。
本例演示一个String图形用户界面的完整应用程序,包括输入数据, 显示结果,响应事件以及异常处理。 输入一个实数表示金额,每次输入时显示该金额的中文大小写形式,运行窗口见最后。...在窗口中,“金额”文本行可编辑,作为数据输入编辑框:“中文大写形式” 文本仅显示结果,不可以编辑。金额文本行响应文本编辑事件。...当输入数据 错误时,进行异常处理,弹出一个对话框,给出提示信息。...this.setVisible(true); } @Override public void caretUpdate(CaretEvent e) { // System.out.println...return result; } public static void main(String[] args) { new MoneyJFrame("金额的中文大写形式
5 toString(int[] a)方法:返回一个指定数组的字符串表现形式 输出结果为 [1, 2, 3, 4] 在数组这块怎能少了 算法排序?...1 JFrame 是大多数应用程序的基本窗口,有边框、标题和按钮,允许程序员把其他组件添加到它里面,把它们组织起来 2 JPanel:最普通的面板,没有特殊功能,主要用来容纳其它控件。...★Java方法的重载:返回类型、修饰符可以相同,也可不同。要求同名的方法必须有不同的参数表(类型和个数都不同),**仅有返回类型不同是不足以区分两个重载的方法。 ?...★线程是能独立运行的程序 ★在编写访问数据库的Java程序时,ResultSet对象的作用是 存储查询结果 ★ this和super ➡不能用在 main() 方法中 ★ 字节流,所有的InputStream...和OutputStream的子类都是,处理二进制数据,它是按字节来处理的 字符流 处理 文本文件 二者 读取的字节数 不同 字符流转化为字节流时,使用 byte[] String.getBytes
,实现可视化,通过socket实现服务端与客户端的连接,服务端每接收一个连接,把传进来的用户名和对应的socket连接封装成一个User对象,把User对象存进一个ArrayList的用户列表并把User...用于绑定强制用户下线的事件监听,事件监听中将获取的JTextField的内容与用户名列表进行逐一匹配,匹配上则创建JSON格式的键值对对象,通过用户列表循环广播告知其他用户,并在用户列表和用户名列表中分别删除该用户信息...3.客户端能够看到所有在线用户 客户端继承了JFrame,实现可视化,添加了一个布局在窗口右边的JPanel,把从服务端接收到的用户名列表中的信息放进去。...,通过msg键传输具体消息,服务端传输给客户端的数据包中,通过判断user_list键的值来确认在线用户及人数 7.使用Maven构建管理项目 项目中运用到了JDBC相关内容和JSONObject对象...,导入了一些依赖jar包,其中仓库和配置文件都是用的idea默认配置。
JEP 347:启用 C++ 14 语言特性 这项更新和 Java 开发者关系不太密切,JEP 347 允许 在 JDK 的 C++ 源码中使用 C++ 14 的语言特性,并且给出了哪些特性可以在 HotSpot...JEP392-1.0.dmg(我用的 MacOS ,所以格式是 dmg)就是打包后的结果。...启动测试 不同的系统安装位置不同: Linux:/opt MacOS :/Applications Windows: C:\Program Files\ 扩展阅读:https://openjdk.java.net...(dog1); System.out.println(dog2); System.out.println(dog3); } } 输出结果: Dog[name=牧羊犬...该 JEP 的动机是阻止第三方库、框架和工具使用 JDK 的内部 API 和包,增加了安全性。 16.
适配器模式涉及3个角色: 源(Adaptee):需要被适配的对象或类型,相当于插头。 适配器(Adapter):连接目标和源的中间对象,相当于插头转换器。...这里Adaptee与Adapter是组合关系。 代码实现: Target和Adaptee和上面的类适配器一样,不再贴出。...: method 1 method 2 类适配器与对象适配器的区别 类适配器使用的是继承的方式,直接继承了Adaptee,所以无法对Adaptee的子类进行适配。...基于组合/聚合优于继承的原则,使用对象适配器是更好的选择。但具体问题应该具体分析,某些情况可能使用类适配器会适合,最适合的才是最好的。...更好的扩展性:在实现适配器功能的时候,可以扩展自己源的行为(增加方法),从而自然地扩展系统的功能。 缺点 会导致系统紊乱:滥用适配器,会让系统变得非常零乱。
领取专属 10元无门槛券
手把手带您无忧上云