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

在吗做网站商城一个网站需要服务器吗

在吗做网站商城,一个网站需要服务器吗,做网站技术含量,设计wordpress页面模板下载地址#x1f308;个人主页: Aileen_0v0 #x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” 文章目录 字符串修改的实现——StringBuilder和StringBuffer异常常见异常①算数异常②数组越界异常③空指针异… 个人主页: Aileen_0v0 热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​个人格言:“没有罗马,那就自己创造罗马~” 文章目录 字符串修改的实现——StringBuilder和StringBuffer异常常见异常①算数异常②数组越界异常③空指针异常 Error异常处理throw - 抛出异常一般是自定义的异常异常捕获 - 两种方法throws 和 try-catch小结 finally - 无论是否发生异常finally后面的语句都会被执行用于关闭资源。异常处理流程梳理总结自定义异常总结 字符串修改的实现——StringBuilder和StringBuffer 通过查看Structure的结构我们可知StringBuilder 的的方法基本上可以归为5种分别是: append,delete,replace,insert,indexOf 其中最关键的是“append”使用案例如下所示 public class Main {public static void main(String[] args) {StringBuffer stringBuffer new StringBuffer(123);stringBuffer.append(abc).append(excellent);System.out.println(stringBuffer);StringBuilder stringBuilder new StringBuilder(Hi);stringBuilder.append( Hello);stringBuilder.append( Aileen ).append(How are you?);System.out.println(stringBuilder);} } 通过查看StringBuffer和StringBuilder这两个方法的append方法的重写我们可以得出这两个方法最主要的区别如下 1. StringBuffer方法 有关键字synchronized【同步的】修饰当它进入StringBuffer这个方法时只有当这个方法里面的append执行完以后才会执行其他方法的append否则就不能执行其它对象的append这意味着这个StringBuffer方法适用于多线程情况。(eg:多人排队上一个卫生间只有当卫生间里面没人了下一个人才能进去上厕所。) 2. StringBuilder方法 对于StringBulider方法由于他没有synchronized这个关键字修饰所以它适用于单线程情况下若代码未涉及线程情况选用StringBuilder即可。 频繁上锁和解锁需要耗费系统资源。 3. String变为StringBuilder 利用StringBuilder的构造方法或append方法。 4. StringBuilder变为String 调用toString方法。 public class Main {public static void main(String[] args) {StringBuffer stringBuffer new StringBuffer(123);stringBuffer.append(abc).append(excellent);System.out.println(stringBuffer);StringBuilder stringBuilder new StringBuilder(Hi);stringBuilder.append( Hello);stringBuilder.append( Aileen ).append(How are you?);System.out.println(stringBuilder);System.out.println(); // 将stringBuilder转化成stringString str stringBuilder.toString();System.out.println(str);System.out.println(----------------------------------);// 将string转换成stringBuilder - 调用构造方法String str1 aileen;StringBuilder stringBuilder1 new StringBuilder(str1);System.out.println(stringBuilder1);System.out.println(----------------------------------); //StringBuilder stringBuilder2 new StringBuilder();stringBuilder2.append(str1);System.out.println(stringBuilder2);} }字符串不可改变的原因是因为这个数组是被private修饰的并且未提供get和set方法 面试题 1.StringStringBufferStringBuilder三者有什么区别 String的内容不可修改StringBuffer和StringBuilder的内容可修改。StringBuffer与StringBuilder的大部分功能是相似的。StringBuffer采用同步处理属于线程安全操作而StringBuilder未采用同步处理属于线程不安全操作。 异常 常见异常 ①算数异常 ②数组越界异常 public static void main(String[] args) {int[] array {1,2,3,4};System.out.println(array[10]);System.out.println(after);} ③空指针异常 public static void main(String[] args) {int[] array null;System.out.println(array[10]);System.out.println(Hi);}Error public static void func(){func();}public static void main(String[] args) {func();}异常处理 throw - 抛出异常一般是自定义的异常 public static void func2(int[] array){if(array null){throw new NullPointerException(array null 了);}}public static void main(String[] args) {func2(null);} 异常一旦抛出后面的代码就不会执行了。 异常捕获 - 两种方法throws 和 try-catch 在没有实现Cloneable接口的情况下通过throws捕获异常 class Person {public String name;Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();} }public class ExceptionLearn {public static void main(String[] args) throws CloneNotSupportedException {Person p new Person();Person p2 (Person) p.clone();System.out.println(hi);}}上面运行结果小结如果程序的异常并未被程序员处理此时这个异常就会交给JVM处理。程序会立即终止 为了处理异常我们加上Cloneable接口再次查看运行结果 同一时刻系统只能抛出一个异常。 注意1.throws必须跟在方法的参数列表后面2.声明的异常必须是Exception 或 Exception的子类3.方法内部如果抛出了多个异常throws后必须跟多个异常类型之间用逗号隔开如果抛出的多个异常之间有父子关系直接声明父类即可。 因为throws抛出的异常有两种情况一种是运行时异常另一种是编译时异常。 而对于main方法他会把func这里调用抛出的异常当做一个编译时异常来处理这就需要程序员手动处理。以下是处理的方式及过程 1.通过throws对异常进行层层声明然后程序会将异常交给JVM处理此时程序就会异常终止。 2.通过try-catch抛出异常用时程序还能够继续向下执行。如果不在main方法中throws Exception可以通过快捷键AltEnter选中以下的内容。 public class Test {public static void func() throws NullPointerException{int[] array null;System.out.println(array.length);}public static void main(String[] args){try {func();//将可能出现异常的代码放这} catch (NullPointerException e) {//捕获对应的异常System.out.println(处理异常);}System.out.println(after);} }如果还想要具体的红色报错信息可以通过调用空指针异常声明的变量e去调用printStackTrace方法来输出。 如果未在catch处声明对应代码的异常再次运行程序结果会怎么样呢 public static void main(String[] args) {try{int[] array {1,2,3,4,5};System.out.println(array[9]);}catch (NullPointerException e){e.printStackTrace();System.out.println(捕获到了空指针异常。。。);}System.out.println(after);}通过上面的代码我们可以看出如果我们没有将对应代码的异常通过catch去捕获那么它就会通过我们的最后一道防线JVM去终止程序。 现在让我们将对应代码的异常通过catch去捕获 我们看到对于异常代码我们运行完以后直接通过catch去捕获其对应的异常而对于异常代码后面的sout语句它并未执行。 可以通过|分割捕获多个异常但是缺点是无法知道具体是哪一个 public static void main(String[] args) {try {int[] array {1, 2, 3, 4, 5};System.out.println(array[9]);}catch (NullPointerException | ArrayIndexOutOfBoundsException e){ //可以通过|分割捕获多个异常但是缺点是无法知道具体是哪一个e.printStackTrace();System.out.println(捕获到空指针 | 数组越界异常......);}System.out.println(Aileen); }如果捕获的异常具有父子类关系情况下要把父类放最后面 public static void main(String[] args) {int[] arr {1,2,3};try{System.out.println(before);arr null;System.out.println(arr[100]);System.out.println(after);}catch(NullPointerException e){//空指针异常属于异常的子类e.printStackTrace();System.out.println(我是空指针异常~);}catch(Exception e){//可捕获到所有异常所有异常的父类e.printStackTrace();}System.out.println(after try catch);} 小结 想要用try catch只是捕获简单的异常直接catchException即可如果想要知道具体的异常类型可使用多个catch去捕获这个异常的具体内容。 finally - 无论是否发生异常finally后面的语句都会被执行用于关闭资源。 public static void main(String[] args) {Scanner scanner new Scanner(System.in);try{int[] array {1,2,3,4};System.out.println(array[10]);int a scanner.nextInt();System.out.println(a);}catch (NullPointerException e){e.printStackTrace();System.out.println(捕获NullPointerException异常...);}catch (ArrayIndexOutOfBoundsException e){System.out.println(捕获ArrayIndexOutOfBoundsException异常...);}finally {System.out.println(finally被执行了);scanner.close();}System.out.println(after);}import java.util.Scanner;public class Test {public static int func2() {Scanner scanner new Scanner(System.in);try {int a scanner.nextInt();System.out.println(a);} catch (NullPointerException e) {e.printStackTrace();System.out.println(捕获NullPointerException异常...);} catch (ArrayIndexOutOfBoundsException e) {System.out.println(捕获ArrayIndexOutOfBoundsException异常...);} finally {System.out.println(finally被执行了);scanner.close();}System.out.println(after);return -1;}public static void main(String[] args) {func2();}根据上面的运行结果可以得出以下结论当我们try-catch捕获异常时如果catch后面的异常跟我们出现的不匹配它就会通过JVM来找到异常并且终止程序。上面的scanner需要我们输入数字但是我输入的是字符与需求不匹配所以当程序运行到这里的时候会通过JVM去捕获异常然后终止程序finally永远都会被执行正因如此如果我们需要关闭资源我们可以将关闭资源的代码放入到finally的语句块中从而节省程序的资源。 import java.util.InputMismatchException; import java.util.Scanner;public class Test {public static int func2() {Scanner scanner new Scanner(System.in);try {int a 10;return a;} catch (InputMismatchException e) {e.printStackTrace();System.out.println(捕获InputMismatchException异常...);} finally {System.out.println(finally被执行了);scanner.close();return 99;}}public static void main(String[] args) {System.out.println(func2());}异常处理流程梳理总结 程序先执行try中的代码如果try中的代码出现异常就会结束try中的代码看和catch中的异常类型是否匹配。如果找到匹配的异常类型就会执行catch中的代码如果没有找到匹配的异常类型就会将异常向上传递到上层调用者。无论是否匹配到匹配的异常类型finally中的代码都会被执行到在该方法结束前执行。如果上层调用者也没有处理的异常了就继续向上传递。一直到main方法也没有合适的处理异常的代码就会交给JVM来处理此时程序就会异常终止。 自定义异常 import java.util.InputMismatchException; import java.util.Scanner;class Login{public String userName Aileen;public String passWord 123456;public void logIn(String userName , String passWord){if(!this.userName.equals(userName)){System.out.println(用户名错误);}if(!this.passWord.equals(passWord)){System.out.println(密码错误!);}} }public class Test {public static void main(String[] args) {Login login new Login();login.logIn(Aileen,abcd);} 我们可以通过自定义方法来找到错误点但是无法定位到错误的位置为了实现这个功能我们可以自定义一个异常类来定位错误我们可以通过模仿已有的异常来编写自定义异常的类 我们可以看到已有异常继承于运行时异常这个类并且还调用了其无参构造方法和带有一个参数的构造方法。 自定义异常可以继承Exception和RuntimeException通过关键字throw来抛出对应的自定义异常 import java.util.InputMismatchException; import java.util.Scanner;class Login{public String userName Aileen;public String passWord 123456;public void logIn(String userName , String passWord){if(!this.userName.equals(userName)){ // System.out.println(用户名错误);throw new UserNameException(用户名错误);}if(!this.passWord.equals(passWord)){ // System.out.println(密码错误!);throw new PassWordException(密码错误!);}} }public class Test {public static void main(String[] args) {try{Login login new Login();login.logIn(Aileen,abcd);}catch (UserNameException e){e.printStackTrace();System.out.println(捕捉到了用户名错误异常。。。);}catch (PassWordException e){e.printStackTrace();System.out.println(捕捉到了密码错误异常。。。);}System.out.println(程序继续执行);}以下两个类是参照运行时异常的源代码修改的自定义异常代码 ①.密码错误类 ②.用户名异常类 总结
http://www.w-s-a.com/news/659106/

相关文章:

  • 先做网站再备案吗中山微网站建设报价
  • 树莓派可以做网站的服务器吗网站建设与设计ppt
  • 网站访问速度分析网站怎么做让PC和手机自动识别
  • 网站建设要考西宁网站建设多少钱
  • 网站开发公司东莞网站推广计划书具体包含哪些基本内容?
  • 素材天下网站惠州网站建设行业
  • 网站做a视频在线观看网站天津建站
  • 自己做的网站怎么链接火车头采集一个网站可以做几级链接
  • 济南网站制作哪家专业做网站怎样投放广告
  • 辽宁网站推广短视频运营培训学费多少
  • 拼多多网站怎么做翻译 插件 wordpress
  • 做网站运营的职业生涯规划wordpress分类显示图片
  • 网站建设与制作总结沈阳百度广告
  • 网站管理系统 手机会员制网站搭建wordpress
  • 做物品租赁网站清新wordpress主题
  • 优秀专题网站家居企业网站建设市场
  • 中山市有什么网站推广wordpress轻应用主机
  • 洗头竖鞋带名片改良授权做网站不贵整个世界
  • 设计电子商务网站建设方案微信如何开发自己的小程序
  • 建设网站公司哪里好相关的热搜问题解决方案做网站要看什么书
  • 网站建设重要性黄岐建网站
  • 做网站电销《电子商务网站建设》精品课
  • 地方商城网站海外网站推广方法
  • 乐山 网站建设安阳给商家做网站推广
  • 网站空间一般多大邢台网站建设有哪些
  • h5网站开发工具有哪些wordpress清空post表
  • 公司开网站干嘛怎么制作一个免费的网站模板
  • 群晖wordpress搭建网站网站建设及管理
  • 中山企业网站建设公司抖音代运营合作模式
  • 南通营销网站开发做网站页面多少钱