学电子商务好找工作吗上海网站搜索优化
- 作者: 五速梦信息网
- 时间: 2026年03月21日 07:03
当前位置: 首页 > news >正文
学电子商务好找工作吗,上海网站搜索优化,网站制作里的更多怎么做,网站建设 实例环境准备 安装JDK和JRE 下载JDK#xff0c;可以在官网Java Downloads | Oracle 中国下载#xff0c;但是这里需要注册才能够下载。在Index of java-local/jdk (huaweicloud.com)也可以下载到#xff0c;但是版本比较老#xff0c;关系不大#xff0c;直接下载#xff0…环境准备 安装JDK和JRE 下载JDK可以在官网Java Downloads | Oracle 中国下载但是这里需要注册才能够下载。在Index of java-local/jdk (huaweicloud.com)也可以下载到但是版本比较老关系不大直接下载对应jdk-8u202-windows-x64.exe这个是JDK8版本它是一个长期维护版本。 下载后安装 注意这里的JRE它是Java程序执行的环境会有额外安装 因为已经包含在下载包中所以也不需要额外下载。 设置环境变量 安装成功之后需要增加Java相关的环境变量。 首先是新建一个环境变量JAVA_HOME 再将JDK和JRE的bin目录添加到PATH变量中 之后如果在PowerShell下可以使用java就表示安装成功了比如 C:\Users\jiangjava 用法: java [-options] class args…或 java [-options] -jar jarfile args… 其中选项包括:-d32 使用 32 位数据模型 (如果可用)-d64 使用 64 位数据模型 (如果可用)-server 选择 server VM默认 VM 是 server.-cp 目录和 zip/jar 文件的类搜索路径-classpath 目录和 zip/jar 文件的类搜索路径用 ; 分隔的目录, JAR 档案和 ZIP 档案列表, 用于搜索类文件。-D名称值设置系统属性-verbose:[class|gc|jni]启用详细输出-version 输出产品版本并退出-version:值警告: 此功能已过时, 将在未来发行版中删除。需要指定的版本才能运行-showversion 输出产品版本并继续-jre-restrict-search | -no-jre-restrict-search警告: 此功能已过时, 将在未来发行版中删除。在版本搜索中包括/排除用户专用 JRE-? -help 输出此帮助消息-X 输出非标准选项的帮助-ea[:packagename…|:classname]-enableassertions[:packagename…|:classname]按指定的粒度启用断言-da[:packagename…|:classname]-disableassertions[:packagename…|:classname]禁用具有指定粒度的断言-esa | -enablesystemassertions启用系统断言-dsa | -disablesystemassertions禁用系统断言-agentlib:libname[选项]加载本机代理库 libname, 例如 -agentlib:hprof另请参阅 -agentlib:jdwphelp 和 -agentlib:hprofhelp-agentpath:pathname[选项]按完整路径名加载本机代理库-javaagent:jarpath[选项]加载 Java 编程语言代理, 请参阅 java.lang.instrument-splash:imagepath使用指定的图像显示启动屏幕 有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html。C:Usersjiangjava -version java version 1.8.0_202 Java™ SE Runtime Environment (build 1.8.0202-b08) Java HotSpot™ 64-Bit Server VM (build 25.202-b08, mixed mode)安装IDE 开发Java常用的IDE有Eclipse和IntelliJ IDEA这里使用IntelliJ IDEA它的Community版是免费的界面如下 创建Java项目 示例代码 到这里Java的基本环境已经安装完毕。 Java基础 Java主类结构 Java程序的基本组成单元是类。 每一个应用程序都必须要包含一个main()方法含有main()方法的类称为主类。 一个Java程序有若干个类组成。 通过package关键字声明类所在的包通过import关键字引入该包包含的类。 下面的代码声明了一个包该包中包含一个类 package LearnJava;public class BasicDataType {public void test() {System.out.print(new BasicDataType());} }下面的代码包含并使用了上述类 import LearnJava.BasicDataType;public class Main {public static void main(String[] args) {// 基本数据类型测试BasicDataType myBasicDataType new BasicDataType();myBasicDataType.test();} }public、static、void分别是权限修饰符、静态修饰符和返回值修饰符。 基本数据类型 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ymhpetO7-1693156098722)(Java.assets/基本数据类型.svg)] Java没有区分正负的数值型它们本身包含正负。 下面是一个示例 package LearnJava;public class BasicDataType {public byte byteValue 0;public short shortValue -1;public int intValue 2;public long longValue 3;public char charValue a;public float floatValue 1.1F; // 不加F会告警public double doubleValue -1.2;public boolean booleanValue true;public void test() {System.out.println(new BasicDataType());System.out.println(byteValue);System.out.println(shortValue);System.out.println(intValue);System.out.println(longValue);System.out.println(charValue);System.out.println(floatValue);System.out.println(doubleValue);System.out.println(booleanValue);} }变量和常量 Java语言严格区分大小写。 Java语言规定标识符有任意顺序的字母、下划线、美元符号$和数字组成并且第一个字符不能是数字。 Java关键字 关键字描述abstract非访问修饰符。用于类和方法抽象类不能用于创建对象要访问它必须从另一个类继承。抽象方法只能在抽象类中使用并且它没有主体。主体由子类继承自提供。assert用于调试。boolean只能存储真值和假值的数据类型。break从循环或switch块中断开。byte可以存储-128和127之间的整数的数据类型。case在switch语句中标记代码块。catch捕获由try语句生成的异常。char用于存储单个字符的数据类型。class定义一个类。continue继续到循环的下一个迭代。const定义一个常量。不再使用改用final。default指定switch语句中的默认代码块。do与while一起使用以创建do-while循环。double可以存储1.7e−308 到 1.7e308。else用于条件语句中。enum声明枚举不可更改类型。exports导出包含模块的包。Java9中的新特性。extends扩展类表示一个类是从另一个类继承的。final用于类、属性和方法的非访问修饰符使它们不可更改无法继承或重写。finally与异常一起使用无论是否存在异常都将执行的代码块。float可以存储3.4e−038 到 3.4e038。for创建for循环。goto不在使用中没有任何功能。if一个条件语句。implements实现一个接口。import用于导入包、类或接口。instanceof检查对象是特定类的实例还是接口的实例。int可以存储从-2147483648到2147483647的整数的数据类型。interface用于声明仅包含抽象方法的特殊类型的类。long可以存储从-9223372036854775808到9223372036854775808的整数的数据类型。module声明一个模块。Java9中的新特性。native指定方法不是在同一Java源文件中实现的而是在另一种语言中实现的。new创建新对象。package声明一个包。private用于属性、方法和构造函数的访问修饰符使它们只能在声明的类中访问。protected用于属性、方法和构造函数的访问修饰符使它们可以在同一个包和子类中访问。public用于类、属性、方法和构造函数的访问修饰符使它们可以被任何其他类访问。requires指定模块内所需的库。Java9中的新特性。return已完成方法的执行并可用于从方法返回值。short可以存储从-32768到32767的整数的数据类型。static用于方法和属性的非访问修饰符。无需创建类的对象即可访问静态方法/属性。strictfp限制浮点计算的精度和舍入。super指超类父对象。switch选择要执行的多个代码块之一。synchronized非访问修饰符指定一次只能由一个线程访问方法。this指方法或构造函数中的当前对象。throw创建自定义错误。throws指示方法可能引发的异常。transient非访问修饰符指定属性不是对象持久状态的一部分。try创建try…catch语句。var声明一个变量。Java10中的新特性。void指定方法不应具有返回值。volatile指示属性不是本地缓存的线程并且总是从“主内存”中读取。while创建while循环。 常量也被称为“final变量”再整个程序中只能被赋值一次。 在Java语言中声明一个常量除了要指定数据类型还需要通过final关键字进行限定。 常量名通常使用大写字母但这并不是必须的。 final double PI 3.1425926;在为所有的对象共享值时常量是非常有用的。 根据变量的有效返回变量可以分为 成员变量在类体中声明的变量被称为成员变量成员变量在整个类中都有效。类中的成员变量又分为两类静态变量和实例变量。局部变量在类的方法体中声明的变量称为局部变量。 运算符 算数运算符 运算符名称描述实例加法将两个值相加。x y-减法从一个值减去另一个值。x - y*乘法将两个值相乘。x * y/除法分子除以分母。x / y%取模取模运算符整除后的余数。x % y自增自增运算符整数值增加 1。x–自减自减运算符整数值减少 1。–x 赋值运算法 运算符实例等同于x 5x 5x 3x x 3-x - 3x x - 3*x * 3x x * 3/x / 3x x / 3%x % 3x x % 3x 3x x 3|x | 3x x | 3^x ^ 3x x ^ 3x 3x x 3x 3x x 3 关系运算符 运算符名称实例等于x y!不等于x ! y大于x y小于x y大于或等于x y小于或等于x y 逻辑运算符 运算符名称描述实例逻辑与如果两个语句都为true则返回true。x 5 x 10||逻辑或如果其中一条语句为true则返回true。x 5 || x 4!逻辑非反转结果如果结果为真则返回false。!(x 5 x 10) 位运算符 运算符描述例子等同于结果十进制AND - 如果两个位都为1则将每个位设置为1。5 10101 000100011|OR - 如果两个位中的任何一个为1则将每个位设置为1。5 | 10101 | 000101015NOT - 反转所有位。 5~0101101010^XOR - 如果两个位中只有一个为1则将每个位设置为1。5 ^ 10101 ^ 000101004Zero-fill left shift - 通过从右侧推入零并让最左边的位脱落来向左移动。9 11001 100102Signed right shift - 通过从左侧推入最左侧位的副本并让最右侧位脱落来右移。9 11001 1110012Zero-fill right shift - 通过从左边推入零并让最右边的位脱落来右移。9 11001 101004 还有三元运算符?:也支持。 代码注释和编码规范 代码注释说明 // 单行注释/*多行注释 *//文档注释注意上面有两个 */一些编码规范 package语句要写在类文件的第一行。如果类不在任何包中可以不写package语句。import语句写在类的上方package语句下方。 流程控制 if语句 if () {} else if {} {} else {}switch语句 switch () {case x:break;case y:break;default:break; }循环语句 while () {}do {} while ();for (x; y; z) {}for (i : a) {}控制语句 break; continue;数组 声明一维数组 int[] arr1; // int arr2[];第二种会在IDE中报告警 Local variable arr2 has C-style array type declaration所以还是建议使用数据类型[]的方式。 一维数组赋值 public void testArray() {int[] arr1;arr1 new int[5];for (int j : arr1) {System.out.println(j);} }声明的同时为一维数组分配内存 int[] arr1 new int[5];初始化一维数组 int[] arr1 new int[] {1, 2, 3, 4, 5}; int[] arr2 {10, 20, 30};二维数组可以看做是特殊的一维数组。 int[][] arr3 new int[2][4];2是行数4是列数 二维数组的初始化 int[][] arr4 new int[][] {{1, 2, 3, 4}, {5, 6, 7, 8}};arr3和arr4是等价的但是不能直接写new int[2][4]会报错。 这样写更能看出行列关系 int[][] arr3 new int[][] {{1, 2, 3, 4},{5, 6, 7, 8} };数组的基本操作 遍历 int[][] arr3 new int[][] {{1, 2, 3, 4},{5, 6, 7, 8} }; for (int[] j : arr3) {for (int i : j) {System.out.println(i);} }foreach的方式很好用。 填充 int[] arr2 new int[3];Arrays.fill(arr2, 1); for (int i : arr2) {System.out.println(i); }为了使用fill()需要导入对应的类 import java.util.Arrays;这里通过fill()为数组填充了同一个值。 还可以指定范围填充 Arrays.fill(arr2, 0, 1, 10);0表示起始位置1表示结束位置但该位置不在填充范围内10表示需要填充的值。 排序 int[] arr1 new int[] {10, 2, 1, 4, 5}; Arrays.sort(arr1); for (int i : arr1) {System.out.println(i); }复制数组 int[] arr1 new int[] {10, 2, 1, 4, 5}; int[] arr2 Arrays.copyOf(arr1, 10); for (int i : arr2) {System.out.println(i); }如果复制的值超过了原有的数组则用0填充。 也有一个范围的版本 int[] arr1 new int[] {10, 2, 1, 4, 5}; int[] arr2 Arrays.copyOfRange(arr1, 1, 2); for (int i : arr2) {System.out.println(i); }通用结束的索引没有包含在内所以上例中只复制一个值。 查询 int[] arr1 new int[] {10, 2, 1, 4, 5}; System.out.println(Arrays.binarySearch(arr1, 1)); System.out.println(Arrays.binarySearch(arr1, 0, arr1.length, 1));返回的是索引值同样可以指定范围。上例的返回值是2。 类和对象 面向对象的特性 封装。继承。多态。 类示例 package LearnJava;public class Book {private String name;public String getName() {return name;}public void setName(String name) {this.name name;} }修饰符权限 privateprotectedpublic本类可见可见可见同包其它类或子类不可见可见可见其它包的类或子类不可见不可见可见 如果没有显式指定权限修饰符则预设为包存取范围即只有一个包中的类可以访问。 this关键字用于表示本类当前的对象当前对象不是某个new出来的实体对象而是当前正在编辑的类。this关键字只能在本类中使用。 构造函数 public Book() {this.name Unspecific; } public Book(String name) {this.name name; }如果类中没有定义构造方法则会自动创建一个无参数的构造方法如果已经有构造函数了且都是带参数的则不会有无参数的构造方法。 这里定义了两个构造函数实际是中方法重载即方法名相同但是参数不同。 static定义类的静态变量或静态方法它们在所有的实例中共享。静态成员同样有修饰符约束。 静态成员在类中可以不用this package LearnJava;public class Book {private String name;public static int count 0;public Book() {this.name Unspecific;count;}public Book(String name) {this.name name;count;}public String getName() {return name;}public void setName(String name) {this.name name;}public void showBook() {System.out.format(Total count: %d\n, count);System.out.println(this.name);} }类的使用 Book book1 new Book(); Book book2 new Book(Learning Java); book1.showBook(); book2.showBook();Object类 ID方法描述1protected Object clone();创建并返回一个对象的拷贝。2boolean equals(Object obj);比较两个对象是否相等。3protected void finalize();当 GC (垃圾回收器)确定不存在对该对象的有更多引用时由对象的垃圾回收器调用此方法。4Class getClass();获取对象的运行时对象的类。5int hashCode();获取对象的hash值。6void notify();唤醒在该对象上等待的某个线程。7void notifyAll();唤醒在该对象上等待的所有线程。8String toString();返回对象的字符串表示形式。9void wait();让当前线程进入等待状态。直到其他线程调用此对象的notify()方法或notifyAll()方法。10void wait(long timeout);让当前线程处于等待(阻塞)状态直到其他线程调用此对象的notify()方法或notifyAll()方法或者超过参数设置的timeout超时时间。11void wait(long timeout, int nanos);与wait(long timeout)方法类似多了一个nanos参数这个参数表示额外时间以纳秒为单位范围是 0-999999所以超时的时间还需要加上 nanos纳秒。 继承和多态 继承 package LearnJava;public class FictionBook extends Book {public FictionBook(String name) {super(name);System.out.println(FictionBook(String)); // 这句要在上句下面否则会报错} }super指向父类这里是父类的构造函数。 使用 Book book new FictionBook(The Three-Body Problem); book.showBook();这里有一个向上转型即子类对象转换成父类对象。 子类可以直接使用父类的函数。 多态是通过父类可以对它以及其子类都可以进行通用操作其中也包含了向上转型 public static void checkBook(Book book) {if (book instanceof FictionBook) {System.out.println(This is a fiction book);} else if (book instanceof ReferenceBook) {System.out.println(This is a reference book);} else {System.out.println(This is a normal book);} }Book book1 new FictionBook(The Three-Body Problem); Book book2 new ReferenceBook(XinHua Dictionary); checkBook(book1); checkBook(book2);这里使用了instanceof关键字可以用来判断对象的类型。 前面介绍过final变量还有 final方法防止子类修改父类的定义与实现方式同时提高执行效率。final类不能被继承。 Java只支持单继承。 抽象类与接口 抽象类使用abstract关键字定义。 抽象类不可实例化。 通过abstract关键字还可以定义抽象方法该方法没有方法体本身没有任何意义必须要被重写可以被它的直接子类重写也可以被其子类的子类重写。当然抽象类中也可以有正常的方法。 接口是纯粹的抽象类所有方法都没有方法体。 使用interface关键字定义接口。 接口中方法必须要是public或abstract形式的否则没有意义。 接口中定义的任何字段都默认是static和final的。 内部类 在一个类中使用内部类可以在内部类中直接存起其所在类的私有成员变量。 package LearnJava;public class OuterClass {private int x 1;public class InnerClass {private int x 11;public void show() {System.out.format(Inner int: %d\n, this.x); // 只用内部类就是它自己的成员变量System.out.format(Outer int: %d\n, OuterClass.this.x); // 使用外部类的成员变量}}public void show() {InnerClass inner new InnerClass();inner.show();} }内部类的使用 OuterClass out new OuterClass(); OuterClass.InnerClass inner out.new InnerClass(); // 内部类依赖于外部类的方法所以必须要用out.new out.show(); inner.show();匿名类是只在创建对象时才会编写类体的一种方法。 匿名类的特点是“现用现写”。比如有一个抽象类 package LearnJava;public abstract class AnimalClass {String name;public abstract void sound(); }这里临时使用 AnimalClass dog new AnimalClass() {Overridepublic void sound() {System.out.println(Wang ~ Wang ~);} }; dog.sound();异常 try-catch-finally语句块用于捕捉异常 try {int a 10 / 0; } catch (Exception e) {e.printStackTrace(); } finally {System.out.println(Always be here); // 无论是否异常都会执行 }字符串 ID方法描述1char charAt(int index)返回指定索引处的 char 值。2int compareTo(Object o)把这个字符串和另一个对象比较。3int compareTo(String anotherString)按字典顺序比较两个字符串。4int compareToIgnoreCase(String str)按字典顺序比较两个字符串不考虑大小写。5String concat(String str)将指定字符串连接到此字符串的结尾。6boolean contentEquals(StringBuffer sb)当且仅当字符串与指定的StringBuffer有相同顺序的字符时候返回真。7static String copyValueOf(char[] data)返回指定数组中表示该字符序列的String。8static String copyValueOf(char[] data, int offset, int count)返回指定数组中表示该字符序列的String。9boolean endsWith(String suffix)测试此字符串是否以指定的后缀结束。10boolean equals(Object anObject)将此字符串与指定的对象比较。11boolean equalsIgnoreCase(String anotherString)将此String与另一个String比较不考虑大小写。12byte[] getBytes()使用平台的默认字符集将此String编码为byte序列并将结果存储到一个新的byte数组中。13byte[] getBytes(String charsetName)使用指定的字符集将此String编码为byte序列并将结果存储到一个新的byte数组中。14void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)将字符从此字符串复制到目标字符数组。15int hashCode()返回此字符串的哈希码。16int indexOf(int ch)返回指定字符在此字符串中第一次出现处的索引。17int indexOf(int ch, int fromIndex)返回在此字符串中第一次出现指定字符处的索引从指定的索引开始搜索。18int indexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引。19int indexOf(String str, int fromIndex)返回指定子字符串在此字符串中第一次出现处的索引从指定的索引开始。20String intern()返回字符串对象的规范化表示形式。21int lastIndexOf(int ch)返回指定字符在此字符串中最后一次出现处的索引。22int lastIndexOf(int ch, int fromIndex)返回指定字符在此字符串中最后一次出现处的索引从指定的索引处开始进行反向搜索。23int lastIndexOf(String str)返回指定子字符串在此字符串中最右边出现处的索引。24int lastIndexOf(String str, int fromIndex)返回指定子字符串在此字符串中最后一次出现处的索引从指定的索引开始反向搜索。25int length()返回此字符串的长度。26boolean matches(String regex)告知此字符串是否匹配给定的正则表达式。27boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)测试两个字符串区域是否相等。28boolean regionMatches(int toffset, String other, int ooffset, int len)测试两个字符串区域是否相等。29String replace(char oldChar, char newChar)返回一个新的字符串它是通过用newChar替换此字符串中出现的所有oldChar得到的。30String replaceAll(String regex, String replacement)使用给定的replacement替换此字符串所有匹配给定的正则表达式的子字符串。31String replaceFirst(String regex, String replacement)使用给定的replacement替换此字符串匹配给定的正则表达式的第一个子字符串。32String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。33String[] split(String regex, int limit)根据匹配给定的正则表达式来拆分此字符串。34boolean startsWith(String prefix)测试此字符串是否以指定的前缀开始。35boolean startsWith(String prefix, int toffset)测试此字符串从指定索引开始的子字符串是否以指定前缀开始。36CharSequence subSequence(int beginIndex, int endIndex)返回一个新的字符序列它是此序列的一个子序列。37String substring(int beginIndex)返回一个新的字符串它是此字符串的一个子字符串。38String substring(int beginIndex, int endIndex)返回一个新字符串它是此字符串的一个子字符串。39char[] toCharArray()将此字符串转换为一个新的字符数组。40String toLowerCase()使用默认语言环境的规则将此String中的所有字符都转换为小写。41String toLowerCase(Locale locale)使用给定Locale的规则将此String中的所有字符都转换为小写。42String toString()返回此对象本身它已经是一个字符串。43String toUpperCase()使用默认语言环境的规则将此String中的所有字符都转换为大写。44String toUpperCase(Locale locale)使用给定Locale的规则将此String中的所有字符都转换为大写。45String trim()返回字符串的副本忽略前导空白和尾部空白。46static String valueOf(primitive data type x)返回给定data type类型x参数的字符串表示形式。47contains(CharSequence chars)判断是否包含指定的字符系列。48isEmpty()判断字符串是否为空。
- 上一篇: 学php到做网站要多久聊天室网站开发
- 下一篇: 学会网站建设方案微网站开发第三方平台
相关文章
-
学php到做网站要多久聊天室网站开发
学php到做网站要多久聊天室网站开发
- 技术栈
- 2026年03月21日
-
学app软件开发多少钱网站建设一条龙全包seo
学app软件开发多少钱网站建设一条龙全包seo
- 技术栈
- 2026年03月21日
-
薛华成 旅游网站建设长治网站制作
薛华成 旅游网站建设长治网站制作
- 技术栈
- 2026年03月21日
-
学会网站建设方案微网站开发第三方平台
学会网站建设方案微网站开发第三方平台
- 技术栈
- 2026年03月21日
-
学剪辑有必要报班吗正安县网站seo优化排名
学剪辑有必要报班吗正安县网站seo优化排名
- 技术栈
- 2026年03月21日
-
学建设网站首页网络广告公司怎么做
学建设网站首页网络广告公司怎么做
- 技术栈
- 2026年03月21日
