当前位置: 首页 > news >正文

用新华做网站名是否侵权沈阳做网站seo

用新华做网站名是否侵权,沈阳做网站seo,网站收录突然减少,如何做网站微信小程序目录 一、Java21新特性 1、字符串模版 2、scoped values 3、record pattern 4、switch格式匹配 5、可以在switch中使用when 6、Unnamed Classes and Instance Main Methods 7、Structured Concurrency 一、Java21新特性 1、字符串模版 字符串模版可以让开发者更简洁的…目录 一、Java21新特性 1、字符串模版 2、scoped values 3、record pattern 4、switch格式匹配 5、可以在switch中使用when 6、Unnamed Classes and Instance Main Methods 7、Structured Concurrency 一、Java21新特性 1、字符串模版 字符串模版可以让开发者更简洁的进行字符串拼接例如拼接sqlxmljson等。该特性并不是为字符串拼接运算符提供的语法也并非为了替换StringBuffer和StringBuilder。 利用STR模版进行字符串与变量的拼接 public class StringTest {public static void main(String[] args) {String sportbasketball;String msgSTR.I like \{sport};System.out.println(msg);} } 预览功能(java文件不要加package包信息) $javac --enable-preview -source 21 StringTest.java 注: StringTest.java 使用 Java SE 21 的预览功能。 注: 有关详细信息请使用 -Xlint:preview 重新编译。 $java --enable-preview StringTest I like basketball 上面使用的STR是java中定义的模版处理器它可以将变量的值取出完成字符串的拼接。在每个java源文件中都引入了一个public static final修饰的STR属性STR通过打印STR可以知道它是java.lang.StringTemplate,是一个接口。 ProcessorString, RuntimeException STR StringTemplate::interpolate;default String interpolate() {return StringTemplate.interpolate(fragments(), values());}static String interpolate(ListString fragments, List? values) {Objects.requireNonNull(fragments, fragments must not be null);Objects.requireNonNull(values, values must not be null);int fragmentsSize fragments.size();int valuesSize values.size();if (fragmentsSize ! valuesSize 1) {throw new IllegalArgumentException(fragments must have one more element than values);}JavaTemplateAccess JTA SharedSecrets.getJavaTemplateAccess();return JTA.interpolate(fragments, values);}public static JavaTemplateAccess getJavaTemplateAccess() {var access javaTemplateAccess;if (access null) {try {Class.forName(java.lang.runtime.TemplateSupport, true, null);access javaTemplateAccess;} catch (ClassNotFoundException e) {}}return access;}final class TemplateSupport implements JavaTemplateAccess { ...Overridepublic String interpolate(ListString fragments, List? values) {int fragmentsSize fragments.size();int valuesSize values.size();if (fragmentsSize 1) {return fragments.get(0);}int size fragmentsSize valuesSize;String[] strings new String[size];int i 0, j 0;for (; j valuesSize; j) {strings[i] fragments.get(j);strings[i] String.valueOf(values.get(j));}strings[i] fragments.get(j);return JLA.join(, , , strings, size);} 其他使用示例在STR中可以进行基本的运算支持三元运算 int x10,y20; String resultSTR.\{x} \{y} \{xy}; System.out.println(result);//10 20 30 调用方法 String resSTR.获取一个随机数:\{Math.random()}; System.out.println(res); 获取属性 String res1STR.int的最大值是:\{Integer.MAX_VALUE}; System.out.println(res1); 查看时间 String res2STR.现在时间:\{new SimpleDateFormat(yyyy-MM-dd).format(new Date()) }; System.out.println(res2); 计数操作 int index0; String resultSTR.\{index},\{index},\{index}; System.out.println(result); 获取数组数据 String[] cars {bmw,ben,audi}; String result STR. \{ cars[0] },\{ cars[1] },\{ cars[2] } ; System.out.println(result); 拼接多行数据 String[] cars {bmw,ben,audi}; String result STR. \{cars[0] }\{ cars[1] }\{ cars[2] } ; System.out.println(result); 自定义模版 public static void main(String[] args) {var INTER StringTemplate.Processor.of((StringTemplate st) - {StringBuilder sb new StringBuilder();IteratorString iterator st.fragments().iterator();for (Object value : st.values()) {sb.append(iterator.next());sb.append(value);}sb.append(iterator.next());return sb.toString();});int x 10, y 20;String result INTER. \{ x } \{ y } \{ x y } ;System.out.println(result);} 2、scoped values scoped values是一个隐藏的方法参数只有方法可以访问scoped values它可以让两个方法之间传递参数时无需声明形参。例如在UserDao类中编写savaUser方法LogDao类中编写了saveLog方法那么在保存用户的时候需要保证事务此时就需要在service层获取Connection对象然后将该对象分别传入到两个Dao的方法中但对于savaUser方法来说并不是直接使用Connection对象却又不得不在方法的形参中写上该对象其实仅从业务上来看该方法中只要传入User对象就可以了。 public class ScopeedValueTest {private static final ScopedValueString GIFTScopedValue.newInstance();public static void main(String[] args) {ScopeedValueTest scopeedValueTestnew ScopeedValueTest();scopeedValueTest.giveGift();}public void giveGift(){ScopedValue.where(GIFT,手机).run(()-recieveGift());}public void recieveGift(){System.out.println(GIFT.get());} } 多线程环境是否会出问题 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;public class ScopeedValueTest {private static final ScopedValueString GIFT ScopedValue.newInstance();public static void main(String[] args) {ScopeedValueTest t new ScopeedValueTest();ExecutorService pool Executors.newCachedThreadPool();for (int i 0; i 10; i) {pool.submit(() - {t.giveGift();});}pool.shutdown();}public void giveGift() {ScopedValue.where(GIFT, Thread.currentThread().getName()).run(() - recieveGift());}public void recieveGift() {System.out.println(GIFT.get());} } 变更中间数值和当前线程绑定关系 public class ScopeedValueTest {private static final ScopedValueString GIFT ScopedValue.newInstance();public static void main(String[] args) {ScopeedValueTest t new ScopeedValueTest();t.giveGift();}public void giveGift() {ScopedValue.where(GIFT, 500).run(() - recieveMiddleMan());}//中间人public void recieveMiddleMan() {System.out.println(GIFT.get());//500ScopedValue.where(GIFT, 200).run(() - recieveGift());//中间人抽成300System.out.println(recieveMiddleMan GIFT.get());//500}public void recieveGift() {System.out.println(GIFT.get());//200} } 3、record pattern 通过该特性可以解构record类型中的值例如 public class RecordTest {public static void main(String[] args) {Student s new Student(1, 小米);print(s);}static void print(Object obj) {if (obj instanceof Student(int a, String b)) {System.out.println(a a);System.out.println(b b);}} }record Student(int id, String name) {} 4、switch格式匹配 public class SwitchTest {public static void main(String[] args) {String strhello;String result getObjInstance(str);System.out.println(result);}public static String getObjInstance(Object obj) {return switch (obj) {case null - 空对象;case Integer i - Integer对象 i;case String s - String对象 s;default - obj.toString();};} } 5、可以在switch中使用when public class Switch02Test {public static void main(String[] args) {yesOrNo(yes);}public static void yesOrNo(String str) {switch (str) {case null - {System.out.println(空对象);}case String swhen s.equalsIgnoreCase(yes) - {System.out.println(确定);}case String swhen s.equalsIgnoreCase(no) - {System.out.println(取消);}case String s - {System.out.println(请输入yes或no);}}} } 6、Unnamed Classes and Instance Main Methods 对于初学者来说写第一个HelloWorld代码有太多的概念为了方便初学者快速编写第一段java代码这里提出了无名类和实例main方法下面代码可以直接运行编译相当于是少了类的定义main方法的修饰符和形参也省略掉了。 void main() {System.out.println(Hello,World!); } 7、Structured Concurrency 结构化并发该特性主要作用是在使用虚拟线程时可以使任务和子任务的代码编写起来可读性更强维护性更高更加可靠。 import java.util.concurrent.ExecutionException; import java.util.concurrent.StructuredTaskScope; import java.util.function.Supplier;public class Test {public static void main(String[] args) {Food f new Test().handle();System.out.println(f);}Food handle() {try (var scope new StructuredTaskScope.ShutdownOnFailure()) {SupplierString fork1 scope.fork(() - 奶茶做好了);//任务1线程1SupplierString fork2 scope.fork(() - 烤串烤好了);//任务2线程2scope.join().throwIfFailed();//失败传播//当两个任务都成功后最终才能吃饭return new Food(fork1.get(), fork2.get());} catch (ExecutionException e) {throw new RuntimeException(e);} catch (InterruptedException e) {throw new RuntimeException(e);}} }record Food(String f1, String f2) {} Java17-20新特性 一个程序员最重要的能力是写出高质量的代码 有道无术术尚可求也有术无道止于术。 无论你是年轻还是年长所有程序员都需要记住时刻努力学习新技术否则就会被时代抛弃
http://www.w-s-a.com/news/529342/

相关文章:

  • 甘肃省两学一做专题网站广东外发加工网
  • 用python导入wordpress公司网络优化方案
  • 效益成本原则网站建设wordpress 上传rar
  • 大连网站制作 连城传媒渠道网络公司官网
  • 电影天堂网站用什么程序做的wordpress 添加链接地址
  • 购买空间网站哪个好重庆英文网站建设
  • 建设网站需要注意什么问题设计网页通常使用什么语言
  • 彩票网站建设要多少钱西安英文网站建设
  • 静态班级网站印象云笔记 wordpress
  • 网站表单及商品列表详情模板永川网站制作联系电话
  • 网站建设与维护难不难网络服务机构的网站
  • 用三权重的网站做友链有好处没企业年金怎么查询
  • 工行网站跟建设网站区别wordpress加入地图
  • 网站的风格对比信息表广告门
  • 教育网站建设毕业设计说明书门户网站模式
  • 洛阳霞光建设网站html做分模块的网站
  • 域名建议网站wordpress 伪静态html
  • 网站风格化设计方案免费模式营销案例
  • 凤翔网站建设农村建设自己的网站首页
  • 怎样用网站做单笔外贸建筑设计公司合作加盟
  • 建网站买的是什么网站开发三层结构
  • wordpress图纸管理网站2345网址导航智能主版
  • 想调用等三方网站数据该怎么做培训课程
  • 高端营销网站建设wordpress咨询
  • 网站搜索框如何做创业怎么做网站
  • 网站手机版管理链接产品推广找哪家公司
  • vuejs 可做网站吗蜘蛛互联网站建设
  • 沈阳网站备案查询17zwd一起做业网站
  • 石家庄大型公司建站广州设计网站培训学校
  • 如何让百度收录中文域名网站wordpress前台管理评论