Java
Yes_JiangShuai
默默奋斗的攻城狮 向往掌握技术而不限于技术
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java实现大段中文转拼音首字母、拼音全拼
【代码】java实现大段中文转拼音首字母、拼音全拼。原创 2023-03-16 19:57:36 · 6744 阅读 · 0 评论 -
输入汉字,打印汉字图形(java实现)
好久没写代码,最近写了一个小demo,可以实现读取输入流中的汉字,用指定的字符打印汉字的图形的功能,欢迎大家批评指正。原创 2022-06-01 09:27:55 · 1721 阅读 · 0 评论 -
16 个超级实用的 Java 工具类
一、前言在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类。以下工具类、方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码。二、org.apache.commons.io.IOUtilsjavacloseQuietly:关闭一个IO流、socket、或者selector且不抛出异常,通常放在finally块toString:转换IO流、 Uri、 byte[]为Stringcopy:IO流数据复制,从输入流写到输出转载 2020-09-08 09:48:53 · 457 阅读 · 0 评论 -
Class.forName()详解
在Java语言中,任何类只有被装载到JVM上才能运行。Class.forName()方法的作用就是把类加载到JVM中,它会返回一个与带有给定字符串名的类或接口相关联的Class对象,并且JVM会加载这个类,同时JVM会执行该类的静态代码段。在使用JDBC连接数据库之前,一般都会调用:Class.forName("com.mysql.jdbc.Driver")方法来加载JDBC驱动,那么为什原创 2020-04-14 08:57:59 · 5803 阅读 · 0 评论 -
Java Socket(套接字)编程、TCP和UDP通信过程详解
网路上的两个程序通过一个双向的通信连接实现数据的交换,这个双向链路的一端被称为一个Socket。Socket也被称为套接字,可以用来实现不同虚拟机或不同计算机之间的通信。在Java语言中,Socket可以分为两种类型,面向连接的Socket通信协议(TCP,Transmission Control Protocol,传输控制协议)和面向无连接的Socket通信协议(UDP,User Datagra原创 2017-05-04 16:35:34 · 2543 阅读 · 0 评论 -
Java中堆和栈的区别(结合示例程序分析各自存储情况)
在Java语言中,堆与栈都是内存中存放数据的地方。变量分为基本数据类型和引用类型,基本数据类型的变量(例如int、short、byte、double、float、boolean以及char等)以及对象的引用变量,其内存都分配在栈上,变量出了作用域就会自动释放,而引用类型的变量,其内存分配在堆上或者常量池(例如字符串常量和基本数据类型常量)中,需要通过new等方式进行创建。具体而言,栈内原创 2017-05-04 10:50:52 · 993 阅读 · 0 评论 -
关于堆和栈的那些事儿
关于堆和栈的那些事2014-09-14 分类:算法设计、编程开发、首页精华2人评论 来源:独酌逸醉分享到:更多7欢迎分享开发问题到码农社区!将问题帖子私信@程序员俱乐部,将有近60000人为您解答!问题描述编程语言书籍中经常解释值类型被创建在栈上,引用类型被创建在堆上,但是并没有本质上解释这堆和栈是什么。我仅有高级语言编程经验,没有看过对此更清晰的解释。我的意思是转载 2017-04-16 12:37:09 · 1042 阅读 · 0 评论 -
编译时类型和运行时类型
Java中的许多对象(一般都是具有父子类关系的父类对象)在运行时都会出现两种类型:编译时类型和运行时类型,例如:Person person = new Student();这行代码将会生成一个person变量,该变量的编译时类型是Person,运行时类型是Student。 说明一下编译时类型和运行时类型: Java的引用变量有两个类型,一个是编译时类型,一个是运行时类型,编译时转载 2017-06-05 15:08:48 · 1107 阅读 · 0 评论 -
Java多线程-停止线程
停止线程是在多线程开发时很重要的技术点,掌握此技术可以对线程的停止进行有效的处理。停止线程在Java语言中不像break那么干脆,需要一些技巧性的处理。使用Java内置支持多线程的类设计多线程应用是很常见的事情,然而,多线程给开发人员带来了一些新的挑战,如果处理不好就会导致超出预期的行为并且难以定位错误。停止一个线程意味着在线程处理完任务之前停掉正在做的操作,也就是放弃当前的操作。虽然这看起来很简原创 2017-06-02 17:16:56 · 737 阅读 · 0 评论 -
Java子类和父类构造器问题分析
在Java中,如果子类中出现了无参构造器(不管是你手动编写的,还是系统自动生成的)时,父类中必须提供一个无参的构造器,但是如果你在子类的无参构造器中调用父类的带参构造器,则父类无须提供一个默认的无参构造器。示例如下:1、子类中出现无参构造器,子类中super()可以省略,编译器默认自动添加super()到子类的构造器第一行:package com.js.demo01;public cl原创 2017-07-13 10:02:27 · 801 阅读 · 0 评论 -
Java内部类的简单记忆
内部类是Java的类的一种形式,它的使用方法比较奇怪,让一些开发人员无法正确的理解它。这里提供一个简单的Demo,帮助大家理解。public class InnerClassDemo{ //静态内部类,不能访问静态成员变量和方法 //在外部类加载的时候,静态内部类也随之加载 //相对于外部类来说,几乎是独立的,可以在不依赖外部类对象的条件下单独创建一个内部类对象 static clas原创 2017-07-13 21:15:23 · 475 阅读 · 0 评论 -
Java使用BigDecimal进行精确计算
其实java的float只能用来进行科学计算或工程计算,在大多数的商业计算中,一般采用java.math.BigDecimal类来进行精确计算。 在使用BigDecimal类来进行计算的时候,主要分为以下步骤: 1、用float或者double变量构建BigDecimal对象。 2、通过调用BigDecim原创 2017-07-14 11:01:48 · 742 阅读 · 0 评论 -
Java对象池原理分析
大家都知道,对于java中的String类型,运行下面两条语句,都能创建一个abc字符串对象。String str1 = "abc";String str2 = new String("abc");但二者的原理却不同,上面一个语句是到字符串常量池中去取abc字符串,如果存在,直接返回引用,而如果不存在,则新建一个abc字符串,然后返回引用。而第二个语句不去检查该字符串是否已经存在于常量原创 2017-07-14 15:27:40 · 1094 阅读 · 0 评论 -
使用Java反射机制创建对象
package com.ch09_reflection;import java.lang.reflect.Constructor;import java.lang.reflect.InvocationTargetException;/** * 通常来说,开发者使用一个new关键字就可以实例化一个类,也就是创建一个对象。那么使用反射机制能否创建一个对象呢? * 答案是肯定的,这样的功能原创 2017-08-11 21:26:41 · 3467 阅读 · 0 评论 -
使用Java反射机制覆盖toString()方法
package com.ch09_reflection;import java.lang.reflect.Field;/** * 用于保存数据的类,往往会具有很多属性(或称为成员变量),而且这些变量可能会发生一些变化, * 例如改变名称、新增属性、去掉属性等。如果在toString()方法中,把这些属性用硬代码(将一些可变的数据直接写在代码中,就叫硬代码) * 的方式进行字符串相加,原创 2017-08-11 21:27:38 · 1882 阅读 · 0 评论 -
使用Java反射机制访问类的私有属性
package com.ch09_reflection;/** * 通过反射来访问类的私有属性 */import java.lang.reflect.Field;class PrivateTestClass{ //私有属性 private String field1; //构造方法 public PrivateTestClass(String field1) { super原创 2017-08-11 21:28:43 · 3318 阅读 · 0 评论 -
使用Java网络编程创建基于TCP协议的Server和Client
package com.ch10_network;import java.io.OutputStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.Date;public class TCPServerA { public stat原创 2017-08-11 21:30:56 · 903 阅读 · 0 评论 -
使用Java网络编程创建基于UDP协议的Server和Client
package com.ch10_network;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;public class UDPClientA { public static void原创 2017-08-11 21:32:26 · 646 阅读 · 0 评论 -
使用Java多线程优化基于TCP协议的Server
package com.ch10_network;import java.io.IOException;import java.io.OutputStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.Date;/** * 给服务原创 2017-08-11 21:33:58 · 1254 阅读 · 0 评论 -
Java实现一个简单的Web服务器
package com.ch10_network;import java.io.IOException;import java.io.OutputStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;/** * 一个简单的Web服务器 * 浏览器在访问一个web原创 2017-08-11 21:37:13 · 1793 阅读 · 0 评论 -
Java反射-使用Field类来操作类的成员变量(Field)
话不多说,请看代码。package com.js.demo01;/** * Field类,代表的是类的属性(字段),也称为成员变量 */import java.lang.reflect.Field;public class ManageFields { public static void main(String[] args) { FieldTestClass obj1 =原创 2017-08-06 15:44:25 · 3316 阅读 · 0 评论 -
Java 8 默认方法和多继承
以前经常谈论的Java对比c++的一个优势是Java中没有多继承的问题。 因为Java中子类只能继承(extends)单个父类, 尽管可以实现(implements)多个接口,但是接口中只有抽象方法,方法体是空的,没有具体的方法实现,不会有方法冲突的问题。这些都是久远的说法了,自从今年Java 8发布后, 接口中也可以定义方法了(default method)。 之所以打破以前的设计在接口中转载 2017-08-15 10:17:29 · 606 阅读 · 0 评论 -
JDK各个版本的新特性(1.5-1.8)
JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言。今天先为大家介绍一下JDK1.5版本到JDK1.7版本的特性。希望能给予帮助。JDK1.5新特性: 1.自动装箱与拆箱:自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型转载 2017-08-15 10:20:44 · 1191 阅读 · 0 评论 -
集合遍历的几种方式
最近在看java集合框架部分的内容,总结一下遍历集合元素的几种方式,供参考。package com.js.general;import java.util.Collection;import java.util.HashSet;/** * Java8为Iterable接口新增了一个forEach()方法,可用于遍历集合元素 * @author jiangs * */publ原创 2017-09-01 10:56:17 · 969 阅读 · 0 评论 -
Java中IO流操作文件总结
IO流操作文件总结拷贝文件package com.cloud.day1;import Java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class Demo1 { public static void原创 2017-04-29 12:01:47 · 1212 阅读 · 0 评论 -
Java13种核心技术
J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述(限于篇幅,这里只能进行简单的描述):J2EE中的13种核心技术规范:JDBC, JNDI, EJBs, RMI, JSP, Java servlets, XML, JMS, Java IDL, JTS, JTA,原创 2016-11-15 09:18:39 · 1192 阅读 · 0 评论 -
自学java基础笔记
java基础教程基础字符public 公共的class 类static 静态的void 无返回类型main 主要的String 字符串args 参数System 系统的out 输出设备print 打印println 打印并换行\t 输出八个空格 相当于制表位\n 换行//注释符 后面跟注释 计算机不执行/*多行注释 中间原创 2016-11-15 09:14:41 · 1583 阅读 · 0 评论 -
Java内存区域与内存溢出异常(一)
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外的人想进去,墙内的人却想出来。 ——《深入理解Java虚原创 2016-11-21 20:45:57 · 728 阅读 · 0 评论 -
Java对象的创建
Java对象的创建java是一门面向对象的编程语言,在java程序运行中无时无刻都有对象被创建出来。在语言层面上,创建对象(例如克隆、反序列化)通常仅仅是一个new关键字而已,而在虚拟机中,对象(此处特指普通的java对象)的创建又是怎样一个过程呢?虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用,并且检查这个符号引用代表的原创 2016-11-22 15:47:58 · 705 阅读 · 0 评论 -
JavaBean、POJO、DAO、DTO小考
名字很玄乎,其实就是常用的实体层,用来封装对象的属性,提供访问接口,增强隐私性。原创 2016-08-27 10:43:02 · 1335 阅读 · 0 评论 -
说说Java代理模式
代理实现可以分为静态代理和动态代理。静态代理静态代理模式其实很常见,比如买火车票这件小事:黄牛相当于是火车站的代理,我们可以通过黄牛买票,但只能去火车站进行改签和退票。在代码实现中相当于为一个委托对象realSubject提供一个代理对象proxy,通过proxy可以调用realSubject的部分功能,并添加一些额外的业务处理,同时可以屏蔽realSubject中未开放的接口。转载 2017-03-28 10:45:28 · 516 阅读 · 0 评论 -
Java线程——两种创建线程的方式
第一种方式:继承Thread类并重写run()方法来创建线程/* * 继承Thread类并重写run()方法来创建线程 * 程序启动时总是会自动的调用main()方法执行主线程,因此mian()是创建和启动线程的地方。首先创建了t1、t2、t3三个线程并传入了相应的参数 * 程序运行到t1.start();启动线程病并自动调用run()方法,在run()方法中,sleep(200)这个方原创 2017-03-12 11:12:37 · 553 阅读 · 1 评论 -
Java进阶知识
1 批处理文件(bat)简单的说,批处理的作用就是自动的连续执行多条命令 .编写bat处理文件可以使用记事本的方式:常见批处理文件的命令: echo表示显示此命令后的字符 tiltle 设置窗口的标题。echo off 表示在此语句后所有运行的命令都不显示命令行本身 color 设置窗体的字体颜色。@与echo off相象,但它原创 2017-04-08 18:47:42 · 2970 阅读 · 0 评论 -
Java简化正则表达式的使用(抽取工具类)
使用:RegexString.with(string).pattern(pattern).start() + 后续操作(matches,find或者是replace)抽取如下工具类:package com.js;import java.util.Objects;import java.util.regex.Matcher;import java.util.regex.Pattern原创 2017-04-29 10:42:36 · 1184 阅读 · 0 评论 -
线程池的一点知识(附示例代码)
线程池:解决了多生产多消费的效率问题使用了JDK1.5 java.util.concurrent.locks包中的对象。Lock接口:它的出现比synchronized有更多的操作。lock():获取锁。unlock():释放锁。同步代码块或者同步函数的锁操作是隐式的。JDK1.5 Lock接口,按照面向对象的思想,将锁单独封装成了一个对象。并提供了对锁的显示操原创 2017-04-29 10:46:40 · 801 阅读 · 0 评论 -
Java线程编程入门
Java中的任何一个类都可以作为线程来使用,Java中提供了两种实现线程的方法。下面为大家一一介绍。 1、继承Thread类,并重写run()方法 示例代码如下: 2、实现runnable接口,并重写run()方法示例代码如下:Questions:1、为什么Java要提供两种方法来实现线程呢?Answer:因为Java是单原创 2016-11-30 17:13:06 · 602 阅读 · 0 评论 -
Java的Socket编程
Java的Socket编程网络编程目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也能及时得到服务。在TCP/IP协议中IP层主要负责网络主机的原创 2017-04-29 11:57:23 · 979 阅读 · 0 评论 -
Java泛型详解
一. 泛型概念的提出(为什么需要泛型)?首先,我们看下下面这段简短的代码:public class GenericTest { public static void main(String[] args) { List list = new ArrayList(); list.add("qqyumidi"); list.ad原创 2017-04-30 12:16:38 · 638 阅读 · 0 评论 -
Java异常处理、异常处理使用的一些注意点(例如,基类和子类捕获的顺序问题)
Java提供了两种错误的异常类,分别为Error和Exception,且它们拥有共同的父类——Throwable。Error表示程序在运行期间出现了非常严重的错误,并且该错误是不可恢复的,由于这属于JVM层次的严重错误,因此这种错误是会导致程序终止执行的。此外,编译器不会检查Error是否被处理,因此在程序中不推荐去捕获Error类型的异常,主要原因是运行时异常多是由于逻辑错误导致的,原创 2017-04-30 16:05:30 · 2478 阅读 · 0 评论 -
迭代器(Iterator)
迭代器(Iterator)是一个对象,它的工作是遍历并选择序列中的对象,它提供了一种访问一个容器(container)对象中的各个元素,而又不必暴露该对象内部细节的方法。通过迭代器,开发人员不需要了解容器底层的结构,就可以实现对容器的遍历。由于创建迭代器的代价小,因此迭代器通常被称为轻量级的容器。迭代器的使用主要有以下三个方面的注意事项:1)使用容器的iterator()方法返回一原创 2017-04-30 16:45:13 · 48401 阅读 · 3 评论
分享