96SEO 2026-02-19 17:14 13
网络编程BS架构优缺点CS架构优缺点三要素IP特殊IP常用的CMD命令

InetAddress类端口号协议UDP协议重点UDP三种通信方式
创建一个池子池子中是空的提交任务时池子会创建新的线程对象任务执行完毕线程归还给池子
下回再次提交任务时不需要创建新的线程直接复用已有的线程即可但是如果提交任务时池子中没有空闲线程也无法创建新的线程任务就会排队等待
Executors线程池的工具类通过调用方法返回不同类型的线程池对象
newCachedThreadPool()创建一个没有上限的线程池public
Executors.newCachedThreadPool();pool1.submit(new
MyRunable());Thread.sleep(1000);pool1.submit(new
MyRunable());Thread.sleep(1000);pool1.submit(new
MyRunable());Thread.sleep(1000);pool1.submit(new
MyRunable());Thread.sleep(1000);pool1.submit(new
MyRunable());pool1.shutdown();}
{System.out.println(Thread.currentThread().getName()
Executors.newFixedThreadPool(3);pool1.submit(new
MyRunable());pool1.shutdown();}
任务拒绝策略说明ThreadPoolExecutor.AbortPolicy默认策略丢弃任务并抛出RejectedExecutionException异常ThreadPoolExecutor.DiscardPolicy丢弃任务但是不抛出异常
这是不推荐的做法ThreadPoolExecutor.DiscardOldestPolicy抛弃队列中等待最久的任务
然后把当前任务加入队列中ThreadPoolExecutor.CallerRunsPolicy调用任务的run()方法绕过线程池直接执行
参数说明要求corePoolSize核心线程数量不能小于0maximumPoolSize最大线程数量不能小于0最大数量
核心线程数量keepAliveTime空闲线程最大存活时间不能小于0unit时间单位用TimeUnit指定workQueue任务队列不能为nullthreadFactory创建线程工厂不能为nullhandler任务的拒绝策略不能为null
ThreadPoolExecutor(3,6,60,TimeUnit.SECONDS,new
ArrayBlockingQueue(),Executors.defaultThreadFactory(),new
ThreadPoolExecutor.AbortPolicy());}
{System.out.println(Runtime.getRuntime().availableProcessors());}
一共有1000张电影票,可以在两个窗口领取,假设每次领取的时间为3000毫秒
0)break;else{ticket--;System.out.println(getName()
MyThread();t1.setName(窗口1);t2.setName(窗口2);t1.start();t2.start();}
不管是什么场景都是计算机跟计算机之间通过网络进行数据传输Java中可以使用java.net包下的技术轻松开发出常见的网络应用程序。
不需要开发客户端只需要页面服务端用户不需要下载打开浏览器就能使用如果应用过大用户体验受到影响
画面可以做的非常精美用户体验好需要开发客户端也需要开发服务端用户需要下载和更新的时候太麻烦
协议数据在网络中传输的规则常见的协议有UDP、TCP、http、https、ftp。
127.0.0.1也可以是localhost是回送地址也称本地回环地址也称本机IP永远只会寻找当前所在本机。
InetAddress.getLocalHost();System.out.println(本地主机信息
address1);System.out.println(本地主机名
address1.getHostName());System.out.println(本地
InetAddress.getByName(xuanlaptop);System.out.println(指定主机信息
address2);System.out.println(主机名
address2.getHostName());System.out.println(IP
OSI参考模型:世界互联协议标准全球通信规范单模型过于理想化未能在因特网上进行广泛推广TCP/IP参考模型(或TCP/IP协议):事实上的国际标准。
{//创建DatagramSocket对象快递公司DatagramSocket
InetAddress.getByName(127.0.0.1);int
port);//发送数据ds.send(dp);//释放资源ds.close();}
java.net.SocketException;public
{//创建DatagramSocket对象快递公司DatagramSocket
DatagramSocket(10086);//接收数据包byte[]
bytes.length);ds.receive(dp);//解析数据包byte[]
dp.getPort();System.out.println(接收到数据
{//创建DatagramSocket对象快递公司DatagramSocket
{System.out.print(请输入您要说的话);String
InetAddress.getByName(127.0.0.1);int
port);//发送数据ds.send(dp);}//释放资源ds.close();}
java.net.SocketException;public
{//创建DatagramSocket对象快递公司DatagramSocket
DatagramSocket(10086);//接收数据包byte[]
dp.getAddress().getHostAddress();String
dp.getAddress().getHostName();System.out.println(ip为
组播组播地址224.0.0.0~239.255.255.255
10000);//从连接通道中获取输出流OutputStream
socket.getOutputStream();//写出数据os.write(aaa.getBytes());//释放资源os.close();socket.close();}
{//创建对象ServerSockerServerSocket
ServerSocket(10000);//监听客户端的连接Socket
ss.accept();//从连接通道中获取输入流读取数据InputStream
b);}//释放资源sorket.close();ss.close();}
Class.forName(全类名);类名.class;对象.getclass();
Class.forName(myreflect.a01.Student);//2.Class
getConstructors()返回所有公共构造方法对象的数组Constructor?[]getDeclaredConstructors()返回所有构造方法对象的数组ConstructorTgetConstructor(Class?...parameterTypes)返回单个公共构造方法对象ConstructorTgetDeclaredConstructor(Class?...
java.lang.reflect.Constructor;public
Class.forName(myreflect.a02.Student);//2.获取构造方法公有Constructor[]
{System.out.println(con);}System.out.println(---------------------------);//所有Constructor[]
clazz.getDeclaredConstructors();for
{System.out.println(con);}System.out.println(---------------------------);//单个.空参Constructor
clazz.getDeclaredConstructor();System.out.println(con3);System.out.println(---------------------------);//单个.实参Constructor
clazz.getDeclaredConstructor(String.class);System.out.println(con4);int
con4.getModifiers();System.out.println(modifiers);Parameter[]
{System.out.println(parameter);}}
newlnstance(Object...initargs)根据指定的构造方法创建对象setAccessible(boolean
java.lang.reflect.InvocationTargetException;public
Class.forName(myreflect.a02.Student);Constructor
clazz.getDeclaredConstructor(String.class,
int.class);//表示临时取消权限校验con.setAccessible(true);Student
getFields()返回所有公共成员变量对象的数组Field[]
getDeclaredFields()返回所有成员变量对象的数组Field
Class.forName(myreflect.a03.Student);//2.获取所有的成员变量Field[]
clazz.getDeclaredFields();for(Field
{System.out.println(field);}//3.获取单个成员变量Field
clazz.getDeclaredField(name);System.out.println(name);//获取权限修饰符int
name.getModifiers();System.out.println(modifiers);//获取成员变量的名字String
name.getName();System.out.println(n);//获取成员变量的数据类型Class?
name.getType();System.out.println(type);//获取成员变量记录的值Student
男);name.setAccessible(true);String
name.get(s);System.out.println(value);//修改对象里面记录的值name.set(s,
getMethods()返回所有公共成员方法对象的数组包括继承的Method[]
getDeclaredMethods()返回所有成员方法对象的数组不包括继承的Method
parameterTypes)返回单个公共成员方法对象Method
Class.forName(myreflect.a04.Student);//获取所有方法对象Method[]
{System.out.println(method);}//获取指定单一方法Method
int.class);System.out.println(m);//获取方法的修饰符int
m.getModifiers();System.out.println(modifiers);//获取方法的名字String
m.getName();System.out.println(name);//获取方法的形参Parameter[]
m.getParameters();for(Parameter
{System.out.println(parameter);}//获取方法的抛出的异常Class[]
m.getExceptionTypes();for(Class
exceptionTypes){System.out.println(exceptionType);}//方法运行Student
Student();m.setAccessible(true);String
11);System.out.println(result);}
获取一个类里面所有的信息获取到了之后再执行其他的业务逻辑结合配置文件动态的创建对象并调用方法
代理里面就是对象要被代理的方法Java通过什么来保证代理的样子?
就是java代码里的特殊标记比如Override、Test等作用是:让其他程序根据注解信息来决定怎么执行该程序。
注意注解可以用在类上、构造器上、方法上、成员变量上、参数上、等位置处。
}注解本质是一个接口Java中所有注解都是继承了Annotation接口的。
注解(…)其实就是一个实现类对象实现了该注解以及Annotation接口。
就是判断类上、方法上、成员变量上是否存在注解并把注解里的内容给解析出来
指导思想要解析谁上面的注解就应该先拿到谁。
比如要解析类上面的注解则应该先获取该类的Class对象再通过Class对象解析其上面的注解。
比如要解析成员方法上的注解则应该获取到该成员方法的Method对象再通过Method对象解析其上面的注解。
Class、
Method、Field,Constructor、都实现了AnnotatedElement接口它们都拥有解析注解的能力。
getDeclaredAnnotations()获取当前对象上面的注解public
annotationClass)获取指定的注解对象public
annotationClass)判断当前对象上是否存在某个注解
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback