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

jsp servlet 网站实例网站开发微信授权登录

jsp servlet 网站实例,网站开发微信授权登录,襄樊网站推广,微信公众号功能模块由于想要写一款性能较好,但是又可以一套代码多个平台运行的客户端app,所以选择了flutter 就去看了官方文档,大体发现flutter使用的dart语言和java和js差不多,感觉就是缝合怪。 Dart 是一种面向对象的编程语言#xff0c;语法上与 Java、JavaScript 等语言有一些相似之处…由于想要写一款性能较好,但是又可以一套代码多个平台运行的客户端app,所以选择了flutter 就去看了官方文档,大体发现flutter使用的dart语言和java和js差不多,感觉就是缝合怪。 Dart 是一种面向对象的编程语言语法上与 Java、JavaScript 等语言有一些相似之处因此对于有 Java 基础的开发者Dart 的语法应该相对容易理解。以下是 Dart 语言的语法介绍特别对比了与 Java 的异同。 看完由遗忘很正常 ,必要时可以查看官方中文文档 https://dart.cn/language/ 1. 基本语法 1.1 变量声明 Dart 是强类型语言但可以通过 var 来声明类型推断的变量。 Dart int age 30; // 明确类型 var name John; // 自动推断为 StringJava int age 30; // 明确类型 String name John; // 明确类型Dart 中 var 类似于 Java 的局部类型推断 var自 Java 10 引入。 1.2 常量 Dart 中使用 const 和 final 来声明常量。const 是编译时常量而 final 是运行时常量赋值后不能修改。 Dart const double pi 3.14; // 编译时常量 final currentTime DateTime.now(); // 运行时常量Java final double PI 3.14; // Java 没有 const但 final 可以限制变量不可修改如果不显示定义 编译时会自动推断 var b奥萨苏;1.3 函数定义 Dart 中的函数定义与 Java 类似但 Dart 的函数可以是顶级函数不需要类的包装。 Dart int add(int a, int b) {return a b; }// 简写方式箭头函数 int subtract(int a, int b) a - b;Java public int add(int a, int b) {return a b; }Dart 的函数可以直接返回表达式使用 箭头函数表示法。 如果不显示定义返回值 则是dynamic类型 void main() {int a12 ;print(你好世界);print(a);String name jack;print(开发者的名字是$name); //输出的时候的引用// 双引号嵌套单引号// 单引号嵌套双引号print(他就是世界第一的火影大王);print(他就是世界第一的火影大王);var b奥萨苏;print(b);add(1,2);} add (int a,int b){return ab; }2. 控制流 2.1 条件语句 Dart 的 if-else 语法与 Java 完全一致。 Dart if (age 18) {print(Adult); } else {print(Minor); }Java if (age 18) {System.out.println(Adult); } else {System.out.println(Minor); }2.2 循环 Dart 的循环控制结构与 Java 非常相似for、while、do-while 循环的语法基本一致。 Dart for (int i 0; i 5; i) {print(i); }int i 0; while (i 5) {print(i);i; }Java for (int i 0; i 5; i) {System.out.println(i); }int i 0; while (i 5) {System.out.println(i);i; }2.3 switch-case Dart 的 switch-case 语法与 Java 类似但 case 不需要 break也没有 fall-through 行为。 Dart var grade A;switch (grade) {case A:print(Excellent);break;case B:print(Good);break;default:print(Unknown grade); }Java char grade A;switch (grade) {case A:System.out.println(Excellent);break;case B:System.out.println(Good);break;default:System.out.println(Unknown grade); }3. 面向对象编程 3.1 类和对象 Dart 是面向对象语言所有东西都是对象类的定义方式与 Java 类似。 Dart class Person {String name;int age;// 构造函数Person(this.name, this.age);void greet() {print(Hello, my name is $name);} }void main() {var person Person(Alice, 30);person.greet(); }Java class Person {String name;int age;// 构造函数public Person(String name, int age) {this.name name;this.age age;}public void greet() {System.out.println(Hello, my name is name);} }public static void main(String[] args) {Person person new Person(Alice, 30);person.greet(); }3.2 继承 Dart 支持单继承使用 extends 关键字。 Dart class Employee extends Person {String jobTitle;Employee(String name, int age, this.jobTitle) : super(name, age);overridevoid greet() {print(Hello, I am $name, and I work as a $jobTitle);} }Java class Employee extends Person {String jobTitle;public Employee(String name, int age, String jobTitle) {super(name, age);this.jobTitle jobTitle;}Overridepublic void greet() {System.out.println(Hello, I am name , and I work as a jobTitle);} }3.3 接口和抽象类 Dart 没有显式的 interface 关键字但所有类都可以作为接口被实现。使用 abstract 关键字定义抽象类。 Dart abstract class Animal {void sound(); // 抽象方法 } //作为接口被实现class Dog implements Animal{overridevoid sound() {print(Woof);} }//但是接口没有有办法在父类申明数值 abstract class Animal {late String name;Animal(this.name); // 抽象方法void sound();} //使用implents 就会报错 class Dog extends Animal{Dog(String name):super(name); overridevoid sound() {print(Woof);}}Java abstract class Animal {abstract void sound(); }class Dog extends Animal {Overridevoid sound() {System.out.println(Woof);} }演示代码 这里dart 利用的是重写来实现继承和实现的逻辑 class Person {String name;int age;// 构造函数Person(this.name, this.age);void greet() {print(Hello, my name is $name);} }void main() {// 多态 父类对象 申明位子类对象Person person Employee(网名, 30,日报记者);person.greet();Iservice serviceServiceImple(jack);service.sayhello(); } class Employee extends Person {String jobTitle;//调用父类的构造函数 和本类的构造函数Employee(String name, int age, this.jobTitle) : super(name, age);overridevoid greet() {print(Hello, I am $name, and I work as a $jobTitle);} }abstract class Iservice {late String name; // 抽象类中的变量Iservice(this.name);void sayhello(){print(接口说你好);}int Add(int a, int b); }class ServiceImple extends Iservice {ServiceImple(String name):super(name);/*** 实现父类空方法*/overrideint Add(int a, int b) {return a b; // 实现加法}/*** 对父类重写 增强*/overridevoid sayhello() {super.sayhello();print(Hello, my name is $name); // 使用 name} } 4. 异步编程 4.1 异步函数 Dart 有内置的 async 和 await 关键字用于处理异步编程这与 JavaScript 中的异步编程类似。 Dart 感觉跟js的很想 Futurevoid fetchData() async {var data await fetchFromServer();print(data); }FutureString fetchFromServer() {// 模拟从服务器获取数据 俩秒后返回数据return Future.delayed(Duration(seconds: 2), () Server data); } //冒泡排序 main() {fetchData(); }Java 中没有 async 和 await你可以通过 CompletableFuture 或其他异步库实现异步操作 import java.util.concurrent.CompletableFuture;public class AsyncExample {public static void main(String[] args) {fetchData();}public static void fetchData() {CompletableFuture.supplyAsync(() - fetchFromServer()).thenAccept(data - System.out.println(data));}public static String fetchFromServer() {try {Thread.sleep(2000); // 模拟耗时操作} catch (InterruptedException e) {e.printStackTrace();}return Server data;} }4.2 Stream Dart 中的 Stream 类似于 Java 的 Stream但它更侧重于处理异步事件流。 Dart Streamint countStream(int to) async* {for (int i 1; i to; i) {yield i;} }void main() async {await for (var value in countStream(5)) {print(value); // 依次输出 1 到 5} }Java 中的 Stream 主要用于集合的函数式操作而异步流处理可以使用 RxJava 或 Project Reactor。 5. 其他重要特性 5.1 集合操作 Dart 中的集合与 Java 类似包括 List、Set、Map 等。 api和java差不多 Dart Listint numbers [1, 2, 3]; MapString, int ages {Alice: 30, Bob: 25};numbers.forEach(print);Java ListInteger numbers Arrays.asList(1, 2, 3); MapString, Integer ages new HashMap(); ages.put(Alice, 30); ages.put(Bob, 25);numbers.forEach(System.out::println);Dart 语言中的集合操作非常丰富类似于 Java 的集合框架但也有其独特之处。Dart 提供了常用的集合类型如 List、Set 和 Map并提供了大量的 API 来操作集合。以下是 Dart 集合操作和 API 的详解 1. List列表 List 是 Dart 中的可变数组类似于 Java 中的 ArrayList。它可以存储有序的元素并且允许重复元素。 创建列表 空列表 var list int[]; // 创建空的整数列表带初始值的列表 var list [1, 2, 3, 4]; // 初始化列表不可变列表 var fixedList List.unmodifiable([1, 2, 3]); // 创建不可修改的列表常用 API 添加元素 list.add(5); // 添加单个元素 list.addAll([6, 7]); // 添加多个元素插入元素 list.insert(0, 0); // 在索引 0 处插入 0 list.insertAll(1, [8, 9]); // 在索引 1 处插入多个元素删除元素 list.remove(1); // 删除第一个值为 1 的元素 list.removeAt(0); // 删除索引为 0 的元素 list.removeWhere((item) item % 2 0); // 删除所有符合条件的元素查找元素 var containsTwo list.contains(2); // 检查列表是否包含某个元素 var indexOfThree list.indexOf(3); // 查找元素的位置排序 list.sort(); // 升序排序 list.sort((a, b) b.compareTo(a)); // 降序排序遍历 list.forEach((item) print(item)); // 遍历列表并打印每个元素映射和过滤 var squaredList list.map((item) item * item).toList(); // 对每个元素平方并返回新列表 var evenList list.where((item) item.isEven).toList(); // 筛选偶数其他常用操作 list.clear(); // 清空列表 var isEmpty list.isEmpty; // 检查是否为空 var length list.length; // 获取长度2. Set集合 Set 是一个无序且元素唯一的集合类似于 Java 的 HashSet。 创建集合 空集合 var set int{}; // 创建空的整数集合带初始值的集合 var set {1, 2, 3, 4}; // 初始化集合常用 API 添加元素 set.add(5); // 添加单个元素 set.addAll([6, 7]); // 添加多个元素删除元素 set.remove(1); // 删除元素 1 set.removeWhere((item) item.isEven); // 删除符合条件的元素集合操作 var unionSet set.union({5, 6}); // 并集 var intersectionSet set.intersection({3, 4, 5}); // 交集 var differenceSet set.difference({3, 4}); // 差集遍历 set.forEach((item) print(item)); // 遍历集合其他常用操作 var containsThree set.contains(3); // 检查集合是否包含某个元素 var isEmpty set.isEmpty; // 检查是否为空 var length set.length; // 获取长度3. Map映射 Map 是键值对的集合类似于 Java 的 HashMap。键必须是唯一的值可以重复。 创建映射 空映射 var map String, int{}; // 创建空的键值对映射带初始值的映射 var map {one: 1, two: 2}; // 初始化映射常用 API 添加或更新键值对 map[three] 3; // 添加新键值对 map.update(two, (value) value 2); // 更新键 two 的值删除键值对 map.remove(one); // 删除键 one 对应的键值对查找值 var value map[two]; // 根据键获取值 var containsKey map.containsKey(two); // 检查是否包含某个键 var containsValue map.containsValue(2); // 检查是否包含某个值遍历 map.forEach((key, value) print($key: $value)); // 遍历映射获取键或值的集合 var keys map.keys; // 获取所有键 var values map.values; // 获取所有值其他常用操作 var isEmpty map.isEmpty; // 检查是否为空 var length map.length; // 获取长度5.2 异常处理 Dart 的异常处理与 Java 类似使用 try-catch。 Dart try {var result 10 ~/ 0; // 整数除法会抛出异常 } catch (e) {print(Caught an exception: $e); } finally {print(This will always execute); }Java try {int result 10 / 0; } catch (ArithmeticException e) {System.out.println(Caught an exception: e); } finally {System.out.println(This will always execute); }5.3 空安全 Dart 支持空安全null-safety防止 null 引发错误类似于 Java 的 Optional。 Dart String? name; // 允许为 null name null; print(name?.length); // 使用 ?. 操作符避免空指针异常Java OptionalString name Optional.ofNullable(null); System.out.println(name.map(String::length).orElse(0));枚举 dart 的枚举也和java类似 dart 需要强制编译时就申明构造函数不可变 enum HttpStatus {ok(200, 响应成功),created(201, 创建成功),badRequest(400, 请求错误),unauthorized(401, 未授权),notFound(404, 未找到),internalServerError(500, 服务器内部错误);final int code;final String name; //一申明即不可变const HttpStatus(this.code, this.name); }java public enum Test {ok(200, OK);final int code;final String message;Test(int code, String message) {this.code code;this.message message;} } 补充 下面的内容都是用到啥 补充啥 初始化 构造函数后面跟 :代码块即可执行初始化 在构造函数之前执行 还有之前的构造函数调用父类方式本质也只是这种初始化的缩写 class Animal{String name;int age;Animal(this.name,this.age); } class Person extends Animal{String action;Person(String name,int age,this.action):super(name,age){print(构造函数被调用);super.ageage;super.namename;} }可变参数搭配可空操作 void greet(String name, {String? greeting, String? farewell}) {if (greeting ! null) {print($greeting, $name!);} else {print(Hello, $name!);}if (farewell ! null) {print($farewell, $name!);} }void main() {greet(Alice); // 输出: Hello, Alice!greet(Bob, greeting: Hi); // 输出: Hi, Bob!greet(Charlie, farewell: Goodbye); // 输出: Hello, Charlie! Goodbye, Charlie!greet(David, greeting: Hey, farewell: See you); // 输出: Hey, David! See you, David! }
http://www.hkea.cn/news/14268179/

相关文章:

  • 成都有哪些比较做网站比较好的哪些软件可以做网站
  • 哪些网站可以做调查赚钱云主机怎么安装网站
  • html网页设计模板免费下载seo优化包括什么
  • 怎么做家庭网站天津高端品牌网站建设
  • 免费自己建立网站互联科技 行业网站
  • 学院网站建设管理规章制度深圳光明区
  • 怎么找做网站平台公司微网站入口
  • 自己做网站上传视频专业沈阳网站建设
  • 网站备案没座机做网站一般几个步骤
  • 广州网站改版哪家好美容院顾客管理系统软件
  • 盗版小说网站建设网站服务器怎么看是哪个厂家的
  • 公司网站无法收录手表购买网站
  • 建设银行河南分行网站模板建站和定制建站
  • readme.md做网站郑州城乡建设局官网
  • 域名网站备案管理系统wordpress 未分类
  • 网站建设域名怎么选择海飞丝网站建设中面临的技术问题_并提出可行的技术解决方案
  • 重庆深蓝科技网站开发win2008r2搭建php网站
  • 旅游网站设计论文摘要企业的oa管理系统
  • 企业做网站被骗楼盘价格哪个网站做的好
  • 网站建设客户定位门户类网站如何做策划
  • 小米官方网站开发版在哪里seo小白入门教学
  • 宁德网站建设制作wordpress关注公众号可见
  • 做自媒体需要关注什么网站青海制作网站
  • 想在百度做网站自己的品牌怎么做加盟推广
  • 邯郸市教育公共服务平台贵州灵溪seo整站优化
  • 紫川网站建设请列举常见的网站推广方法
  • 领诺科技网站建设wordpress数据库迁移
  • 微信怎么建设自己网站网站效果图模板
  • 潍坊模板开发建站游戏软件开发流程
  • 零基础建设网站视频福建省住房与城乡建设厅网站