java
臧初之
有时候,总想记录点什么东西
展开
-
[Java]静态代理、动态代理、AOP编程代码实例
静态代理:package test1;//静态代理模式//接口interface ClothFactory{ void productCloth();}//被代理类class NikeClothFactory implements ClothFactory{ @Override public void productCloth() { // TODO Auto-generated method stub System.out.println("Nike工厂生产一批衣服");原创 2021-03-11 15:12:46 · 141 阅读 · 0 评论 -
[Java]对NIO中非阻塞式编程的个人浅见
个人总结:阻塞式编程:客户端向服务器端建立通道,发送数据时,由于服务器端不知道数据什么时候发送完毕或者无法验证数据的真假时,造成阻塞,可用多线程方式降低阻塞。非阻塞式编程:当客户端向服务器端建立通道时,需要在选择器上进行通道的注册,选择器的功能是监听已注册的通道的某种任务的状态(包含多种状态:读、写、连接、接受数据),当其中一种状态完全准备就绪时,选择器才会将这个任务分配到一个或多个服务器的线程上,进行操作运行基于TCP:package test;import java.io.IOExcepti原创 2021-03-07 16:39:27 · 129 阅读 · 1 评论 -
[Spring5.X]Spring5.x的下载教程
输入网址:https://spring.io进入如下界面:点击右上角—>>Projects—>>Spring FrameWork,进入点击切换到LEARN,如图红圈所示注意:此时Spring FrameWork的版本中,***GA***表示稳定版,即5.3.4为目前最新的稳定版。点击右上角图标(红圆圈所示),进入GitHub网站.下滑界面,出现如下图所圈Access to Binaries,点击所圈蓝色字体(Spring Framework Artifacts)原创 2021-03-05 21:10:43 · 839 阅读 · 0 评论 -
[Java]java中对NIO缓冲区(Buffer)的理解
//缓冲区(Buffer):在java NIO中负责数据的存取。缓冲区就是数组。用于存储不同类型的数据/*一、根据数据类型的不同(boolean除外),提供了相应类型的缓冲区:ByteBufferCharBufferShortBufferIntBufferLongBufferFloatBufferDoubleBuffer上述缓冲区的管理方式几乎一致,通过allocate()获取缓冲区二、缓冲区存取数据的2个核心方法put():存入数据到缓原创 2021-03-05 10:33:34 · 128 阅读 · 1 评论 -
[Java]5个java编程实例
单纯记录一下学习过程1.模拟一个trim方法,去除字符串两端的空格2.将一个字符串反转,将字符串中指定部分进行反转。例如将“abcdefg”反转为“abfedcg”3.获取一个字符串在另一个字符串中出现的次数比如,获取“ab”在“abkkcadkaebfkabkskab”中出现的次数4.获取两个字符串中最大的相同子串。比如:str1=“abcwerthelloyuiodef”;str2=“cvhellobnm”5.对字符串中字符进行自然顺序排序import java.util.Array原创 2021-03-01 11:03:32 · 612 阅读 · 0 评论 -
[Java]线程通讯例子:使用2个线程(线程1、线程2)交替打印1-100。
//线程通信:在同步代码块或同步方法中使用//wait(),一旦一个线程执行到wait(),就释放锁//notify(),notifyAll():唤醒处于wait状态的一个或多个线程//使用2个线程打印1-100.线程1、线程2交替打印public class TestCommunication { public static void main(String[] args) { PrintNum p=new PrintNum(); Thread t1=new Thread(p); T原创 2021-02-14 20:28:42 · 295 阅读 · 2 评论 -
[java]内存变化图解----按值传递?
在java中,使用的是值传递在C++中,可以使用值传递和参数传递原创 2020-11-20 17:41:52 · 441 阅读 · 0 评论 -
[java]java新特性---可变个数的形参
java中,存在C++没有的一种重载方法,即可变个数的形参,合理使用可变个数的形参,可以更好地提高编程效率。/*可变个数的形参:1.格式:对于方法的形参:数据类型 … 形参名2.可变个数形参的方法与同名的方法之间构成重载3.可变个数的形参在调用时,个数从0开始,到无穷多个4.使用可变多个形参的方法与方法的形参使用数组是一致的5.若方法中存在可变个数的形参,那么一定要声明在方法形参的最后6.在一个方法中,最多只有一个可变个数的形参*/解释:3.可变个数的形参在调用时,个数从0开始,到无原创 2020-11-09 17:10:09 · 249 阅读 · 0 评论 -
[java]练习:打印对称菱形
打印如下图形:加入辅助符号“-”:把图形上下部分分开,先打印上半部分:设行数为i,则上半部分为第0行到第4行设“-"为k,设“* ”(*+空格)为j,则上半部分可表示为:上图结论为:k=4-ij=i+1上半部分打印:class TestPrint { public static void main(String[] args) { for(int i=0;i<=4;i++){ //先打印“-” for (int k=0;k<=4-i;k++)原创 2020-11-07 20:30:18 · 578 阅读 · 0 评论 -
[java]for死循环和while死循环练习:从键盘输入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序
无限循环结构for(; ;){…if( ){break;}…}或者while(true){…if( ){break;}…}往往我们在无限循环结构内部提供循环的终止条件,使用break关键字。否则,此循环将无限制的执行下去,形成死循环!死循环是我们要避免的。for死循环:/*从键盘输入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序*/import java.util.Scanner;class TestExer { public sta原创 2020-11-07 17:16:24 · 2379 阅读 · 1 评论 -
[java]for循环,while循环与do-while循环的区别
1.格式:①初始化条件②循环条件③迭代部分④循环体for(①;②;③){④}例如:class TestFor { public static void main(String[] args) { //20以内偶数的输出 for (int i=1;i<20 ;i++ ) { if(i%2==0){ System.out.println(i); } } }}运行结果:①while(②){④③}例如:class Te原创 2020-11-07 16:51:10 · 525 阅读 · 0 评论 -
[java]for循环语句练习1:编写程序FooBizBaz.java
编写程序FooBizBaz.java,从1循环到150并在每行打印一个值,另外在每个3的倍数行上打印出“foo”,在每个5的倍数行上打印“biz”,在每个7的倍数行上打印输出“baz”。123 foo45 biz6 foo7 baz……15 foo biz……105 foo biz baz…class FooBizBaz { public static void main(String[] args) { for (int i=1;i<=150;i++) {翻译 2020-10-02 23:09:33 · 576 阅读 · 0 评论 -
[java]switch……case练习2:从键盘上输入2014年的月份和日期,计算这是2014年的第几天?
编写程序:从键盘上输入2014年的“month”和“day”,要求通过程序输出输入的日期是2014年的第几天?import java.util.Scanner;class TestSwitch4 { public static void main(String[] args) { Scanner s=new Scanner(System.in); System.out.println("请输入2014年的月份(month):"); int month=s.nextInt(); S原创 2020-09-27 21:37:49 · 783 阅读 · 1 评论 -
[java]switch....case小练习:输入小写的char类型,并将之转为大写
使用switch,把小写的char类型转为大写。只转换a,b,c,d,e。其他的输出“other”.import java.util.Scanner;class TestSwitch1 { public static void main(String[] args) { Scanner s=new Scanner(System.in); char i=s.next().charAt(0); //char i=s.nextChar();//在这里,从键盘上无法直接输入char类型的数原创 2020-09-27 12:19:42 · 3006 阅读 · 0 评论 -
[java]两个变量的值进行交换(3种方法)
class TestExer1 { public static void main(String[] args) { int m=12; int n=5; System.out.println("m:"+m+"\n"+"n:"+n); System.out.println("这是方法一"); //方法一:提供一个临时变量 int temp=m; m=n; n=temp; System.out.println("m:"+m+"\n"+"n:"+n); Syst原创 2020-09-26 15:10:22 · 3085 阅读 · 0 评论 -
[java]&&(短路与)与&(逻辑与)之间的区别
&与&&的区别:&:不管左边是true还是false,右端都会进行运算。&&:只要左端不满足条件(即为false),右端就不会进行运算。建议运算时,多使用&&(短路与),这样一方面可以减少不必要的开销,节省计算,另一方面可以规避错误同理可得,|(逻辑或)和||(短路或)也存在上述区别。class Test{ public static void main(String[] args){ boolean a=true; boole原创 2020-09-25 20:28:41 · 633 阅读 · 1 评论