java基础知识
.
#1.java的概论
1.1java的特点
- Java语言是简单的(相比与其他语言来说)
- Java语言是分布式的
- Java语言是健壮的
- Java语言是安全的
- Java语言是体系结构中立的
- Java语言是可移植的
- Java语言是解释型的
- Java是高性能的
- Java语言是多线程的
- Java语言是动态的
2.2JAVA语言简介
- Java分为三个体系:
(1)JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
(2)JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
(3)JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。
# 2.JAVA标识符与关键字
2.1 标识符
Java语言中,对于变量,常量,函数,语句块也有名字,我们统统称之为Java标识符.标识符是用来给类、对象、方法、变量、接口和自定义数据 类型命名的。
2.1.1 标识符的合法定义:
- 由26个英文字母大小写,数字0-9,符号:_或$组成。
- 数字不可以开头。
- 不可以使用关键字和保留字,但能包含关键字与保留字。
- Java严格区分大小写,长度无限制。
- 标识符不包含空格。
2.1.2 标识符命名规则 - 包名:多单词组成时所有的字母都小写。如:xxxyyyzzz 包名一般定义为com.该项目名字.+自己的名字
- 常量名:所有字母都大写,多单词组成时用下划线连接。XXX_YYY_ZZZ
- 类名接口名:多单词组成是所有的首字母大写。驼峰写法:XxxYyyZzz
- 变量名和函数名:多单词组成时,第一个单词首字母小写,之后的单词首字母大写。xxxYyyZzz(小驼峰方法)
double price;// 单价
double weight;// 重量
double sum3;
注意:定义变量名字时候一定要有实际意义,用a ,b,c来命名变量也可以但是会造成混乱容易出错
2.2 常用关键词分类如下:
- 类、方法和变量修饰符关键字 class:告诉系统后面的单词是一个类名,从而定义一个类。
- 访问修饰符关键字 protected public为公有的 private为私有的只能
- *流程控制关键字
- 异常处理关键字 try catch语句 最终可用finally结束 异常可用throw抛出
- 包控制关键字
- 数据类型关键字
- 没有使用的关键字
- 特殊类型和方法关键字
#3.java中的基本数据类型
3.1java 8 种基本数据类型
-
.布尔型(boolean)
-
字符型(char)
-
字节型(byte)
-
整数型分为:short(短整型) long(长整型)int(整型)
-
浮点型分为:float(单精度) double(双精度
3.2 各数据类型按容量大小(表数范围大小)由小到大排列为: -
Byte, short, char ——int ——long——float——double
3.3强制类型转换与自动类型转换
-
进行赋值时,小精度能给大精度,大精度不能给小精度
b=(byte) i;当大精度给小精度进行赋值时进行强制类型转换 System.out.println(“整数型”+b);//字符串进行相加为拼接 数字为相加 boolean类型一般用来判断真和假
默认值为false
#4.java中常量与变量的定义
4.1java变量的声明:
4.1.1对变量进行解释
、
- double salary;
int age;
Boolean op;
其中第一项称为变量类型,第二项称为变量名。分号是必须的,这是 Java 语句的结束符号。
同一类型的不同变量,可以声明在一行,也可以声明在不同行,如果要声明在同一行中,不同的变量之间用逗号分隔, - 例如下面的例子。
int studentNumber,people;
声明变量的同时可以为变量赋值,也可以声明以后再赋值。如:
int a=1; //声明时赋值
int a; a=1; //声明后赋值
java中常量用final修饰不可改变,变量是在程序中可以进行重新赋值
#5.java中的运算符
5.1.java中的算数运算符**
- 加+ 减- 乘* 除/ 取余% 加加++ 减减–
加减乘除与普通的数学运算一样++与–具有特点
++相当于数值自增1 a++=a+1;
–相当于数值自减1 a–=a-1;
++在前与++在后的区别-
1.如果在程序中进行运算 然后输出运算后的结果,运算符在前后是没有任何区别的
-
2.如果在输出语句正进行运算并输出结果,那么++在前是先进行运算,然后在将运算结果输出
-
到控制台,++在后是先输出变量本身的值在进行运算,在下一次使用变量的时候使用的就是运算
结果 -
例如
-
5.2.Java语言支持的赋值运算符:*
5.21 常用的几种赋值运算符
- 赋值= :简单的赋值运算,将等号右边的值赋给左边
- 加等+= :把左右两边的值进行相加值赋给左边 a+=b就等于 a=a+b;
- 减等-= :把左右两边的值进行相减值赋给左边 a-=b就等于 a=a-b;
- 乘等*=:把左右两边的值进行相乘值赋给左边 a*=b就等于 a=a*b;
- 除等/=:把左右两边的值进行相除值赋给左边 a/=b就等于 a=a/b;
5.3.java语言中的关系运算符
5.4.java语言中的逻辑运算符**
- && 与:一个为假都为假 两个都为真的时候才为真
- || 或 :一个为真都为真 两个为假都才为假
- !非:与条件正好相反
5.5三元预算符
三元运算符的基本格式
- 变量=(表达式)? value1:value2;判断是否正确 正确返回value1不正确返回value2
- int num=((1==1)?10:20)
- 注意事项,要接受变量类型必须与表达式的value类型一致
- 直接输出System.out.println(((1==1)?10:20));
- 三元运算符与if else语句相同 为真执行if里边的语句 不正确执行else外边语句
#6.java中的流程控制
6.1.分支结构**
6.1.1分支结构分为if语句和switch语句
1.1if语句可分为三种单独的if语句
-
1.if语句
一个if语句包含一个布尔表达式和一条或多条语句。
语法
If语句的用语法如下:
if(布尔表达式){
//如果布尔表达式为true将执行的语句}
如果布尔表达式的值为true,则执行if语句中的代码块。否则执行If语句块后面的代码。
public class Test5{
public static void main(String args[]){
int x = 10;
if( x < 20 ){
System.out.print(“这是 if 语句”);
}
}}
以上代码编译运行结果如下:
这是 if 语句 -
2.if(){} else语句
if语句后面可以跟else语句,当if语句的布尔表达式值为false时,else语句块会被执行。
语法
if…else的用法如下:
if(布尔表达式){ //如果布尔表达式的值为true}
else{ //如果布尔表达式的值为false}
public class Test6 {
public static void main(String args[]){
int x = 30;
if( x < 20 ){
System.out.print(“这是 if 语句”);
}else{
System.out.print(“这是 else 语句”);
}
}}
以上代码编译运行结果如下:
这是 else 语句 -
3.if…else语句if…else语句
if语句后面可以跟elseif…else语句,这种语句可以检测到多种可能的情况。
使用if,else if,else语句的时候,需要注意下面几点:
(1)if语句至多有1个else语句,else语句在所有的elseif语句之后。
(2)If语句可以有若干个elseif语句,它们必须在else语句之前。
(3)一旦其中一个else if语句检测为true,其他的else if以及else语句都将跳过执行。
语法
if…else语法格式如下:
if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码}
else if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码}
else if(布尔表达式 3){
//如果布尔表达式 3的值为true执行代码}
else {
//如果以上布尔表达式都不为true执行代码}
使用嵌套的if-else语句是合法的。也就是说你可以在另一个if或者elseif语句中使用if或者elseif语句。
语法 -
4嵌套的if…else语法格式如下:
if(布尔表达式 1){
如果布尔表达式 1的值为true执行代码
if(布尔表达式 2){
如果布尔表达式 2的值为true执行代码
}}
你可以像 if 语句一样嵌套 else if…else。
c |= a = 10
1.2.2switch语句
switch语句有如下规则: -
switch语句中的变量类型只能为byte、short、int或者char,JDK1.7版本及以上可以使用String。
-
switch语句可以拥有多个case语句。每个case后面跟一个要比较的值和冒号。
-
case语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
-
当变量的值与case语句的值相等时,那么case语句之后的语句开始执行,直到break语句出现才会跳出switch语句。
-
当遇到break语句时,switch语句终止。程序跳转到switch语句后面的语句执行。case语句不必须要包含break语句。如果没有break语句出现,程序会继续执行下一条case语句,直到出现break语句。
- switch语句可以包含一个default分支,该分支必须是switch语句的最后一个分支。default在没有case语句的值和变量值相等的时候执行。default分支不需要break语句。
-
switch语句的基本格式
switch (key) {
case value:break;
default:
break;
}
在switch语句与if语句能进行嵌套,在case里边进行嵌套。
6.2.循环结构
目前学习的循环结构为while语句与do while语句
6.2.1while语句
- while是最基本的循环,它的结构为:
while( 布尔表达式 ) {
//循环内容}
只要布尔表达式为true,循环体会一直执行下去。。
当布尔表达式改变时候while循环结束
6.2.2do while语句
- 对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do…while循环和while循环相似,不同的是,do…while循环至少会执行一次。
do {
//代码语句}while(布尔表达式);
注意:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为true,则语句块一直执行,直到布尔表达式的值为false。
while语句与do while语句能进行嵌套,在循环里边也能加入分支结构 - 例如
while (jiXu) {
// 创建水果循环
System.out.println(“你想买什么水果”);
chengji = in.next();
// 创建switch语句进行水果选择
switch (chengji) {
case “苹果”:
System.out.println(“苹果一斤的价格为20元,请问你想买多少斤”);
price = 20;// 一斤苹果的价钱
System.out.println(“您购买的苹果斤数为”);
weight = in.nextDouble();// 重量为变量定义为可变的
// 苹果总价钱
// 给顾客找钱或者补的钱数
double money = weight * price;// 顾客买苹果要给的钱
System.out.println(“您需要给的钱为:” + money);
sum += money;
System.out.println(“您是否还要购买什么水果”);
cheng = in.next();
// 创建switch语句询问顾客是否还要继续买水果
switch (cheng) {
case “是”:
break;// 选择是进入选择水果循环
default:
System.out.println(“不买水果了”);
System.out.println(“你是否要继续买文具”);
这个程序就是在循环里边进行的嵌套
}
}
}
6.2.3 for循环语句
-
1.1 语法结构:
For( 【初始变量】; 【表达式】 ; 【变量更新】){ Java代码
-
1.2关于for循环有以下几点说明:
(1)最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
(2)然后,检测布尔表达式的值。如果为true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
(3)执行一次循环后,更新循环控制变量。
(4)再次检测布尔表达式。循环执行上面的过程。
for () 可以没有任何参数,代表是死循环
在for语句中可以同时声明多个变量,必须是同一类型的。for(int i=2 , b=1;i<=10;i+=2){ 同时定义int类型的i和b
-
1.3三个关键字
-
break
break 结束当前循环,以后都不在执行break后边的语句//输出1--10之间的所有数字,不输出7 之后的值 for(int i=1;i<=10;i++) { System.out.print(i+"\t"); if(i==7) { break; } System.out.print("我是break"); } 输出结果 1 我是break2 我是break3 我是break4 我是break5 我是break6 我是break7 注释:当i自增到7的时候结束本次循环
定点跳出 break加强版
jieshu:
for(){
}
break jieshu;
定点跳出相当于return,使用定点break,相当于给我们break添加一个跳出去的节点。
定位点必须在for循环语句的上面第一行 -
continue
continue结束当前循环的本次循环进入当前循环的下一次循环,本次循环后边的语句不在执行,下次继续执行。//输出1--10之间的所有数字,continue for(int i=1;i<=3;i++) { System.out.print(i+"\t"); if(i==2) { continue; } System.out.print("我是continue"); }
-
return
return 结束当前所有循环for(int i=1;i<=3;i++) { System.out.print(i+"\t"); if(i==2) { return; } System.out.print("我是return"); }
-
**
-
1.4增强型for循环**
增强型的for循环相当 for each for(int i:数组)
主要针对数组使用,在一个数组可以保存多个相同数据类型的值。
-
1.5for循环的嵌套
外层循环控制行,内层循环控制列。外层循环循环一次。内层循环循环一遍。
#7.java中的dos命令
- 1.*创建TXT文件 将文件改为java文件 改后缀为.java
在java文件中写代码:
Public class hello
Class后面的名字必须与java文件名字一致,首字母大写。
Public static void main(String args[]){ } 要想让程序运行必须的有该代码,
System.out.println(); 该语句是在控制台打印输出内容的语句 输出的内容在()写 , 如果想直接输出内容需要使用“” 但是如果输出的是数字就直接写数字就可以了。=
将java文件复制带本地磁盘中
进行编译和执行代码的操作 - 2.编译 进入到java文件所在的位置,找到需要编译的文件
进入到dos窗口:wind+r 在运行窗口输入cmd
Dos命令:
转盘 盘符名: D: e:
文件夹切换:只能进入下一层 cd 文件夹名字
查看文件夹 dir
返回上一级目录: cd …/
编译命令 javac +java源文件的名字和后缀。 会在当前位置生成对应的class文件。
执行使用 java +class文件的名字。
每一次的java源文件修改 都必须进行重新编译 才会生成新的字节码class文件。
执行执行的是class文件。
#8.搭建java程序开发环境
8.1、下载安装JDK
- 首先我们需要下载java开发工具包JDK。下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html,
- 在下载页面中你需要选择接受许可,并根据自己的系统选择对应的版本,本文以 Window 64位系统为例:
- 下载后JDK的安装根据提示进行,还有安装JDK的时候也会安装JRE,一并安装就可以了。安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为 C:\Program Files (x86)\Java\jdk1.8.0_91。
注意:JDK与jre区别?可以简单理解成:JDK = JRE + Tools&Tool APIs。
8.2、配置环境变量
- 1、安装完成后,右击"我的电脑",点击"属性",选择"高级系统设置";
- 2、选择"高级"选项卡,点击"环境变量";
- 3、然后就会出现如下图所示的画面:
- 4.在"系统变量"中设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击"编辑",不存在则点击"新建"。
变量设置参数如下:
变量名:JAVA_HOME
变量值:C:\Program Files (x86)\Java\jdk1.8.0_91 // 要根据自己的实际路径配置
变量名:CLASSPATH
量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; //记得前面有个"."
变量名:Path
变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; - 5.测试JDK是否安装成功
1、“开始”->“运行”,键入"cmd";
2、键入命令: java -version、java、javac 几个命令,出现以下信息,说明环境变量配置成功;
8.3、JDK目录介绍
- 在JDK1.7的根目录有bin,db,include,jre,lib五个文件夹,还有一个src.zip(Java的源码压缩包);其他的一些文件不做介绍…
(1)bin:jdk/bin目录下基本都是.exe结尾的可执行文件
(2)lib:jdk/lib目录存放的都是Java开发工具要用的一些库文件
(3)jdk/jre目录提供java程序运行的全部环境
(4)jdk/jre/lib:该目录提供了JRE要用的代码库
(5)jdk/db目录,该目录应该是新加的,JDK6之后自带的微型数据库,这是一个纯 Java 实现、开源的数据库管理系统(DBMS)。
#9.数组
9.1数组的使用规则
-
既能存储原始数据类型,又能存储数据对象
-
.数组元素的个数称为数组的长度。长度一旦确定,就不能改变
-
数组有默认值,当数组里边没有值得时候为null
-
数组的元素下标从0开始的,即第一个元素下标是从0开始的,数组的元素下标的最大值等于数组长度减1
-
可以创建数组的数组
-
数组可以作为对象处理,数组对象含有成员变量length,用来表示数组的长度
-
数组中的每一个值称为数组的元素
9.11规则使用点
- 1.可以只能给部分元素赋值
- 只能给元素逐个赋值,但是不能给元素整体赋值
- 如不给可初始化的数组附初值,则元素全部元素均为0值(基本数据类型)
- 如给全部元素赋值,则在数组说明中,可以不给出数组元素的个数
9.2数组的创建语法
9.21数组的创建
-
数组类型[] 名字(推荐使用)
int[] num1=new int [2]; 定义一个整数型的名字为num1长度为2的数组
-数组类型 数组的名字[];
int num3[]={1,2};
9. 22、数组的赋值方式:
在创建的时候只给定长度,不给具体的值。num=new int[5];
在创建的时候给具体的值,不明确长度。
num=new int[]{1,5,8,25}
9.23、数组的使用
数组中的所有的值称为数组的元素,数组的元素个数称为数组的长度。数组的长度是数组.length,数组中的每一个元素都有一个下标,下标从0开始,数组下标的最大值是数组的长度减1。
-
a查看数组的长度:num.length。数组的长度结果是int类型的。
int leng=num.length; 使用变量来接收数组的长度 System.out.println(num2.length); 直接输出长度
-
B数组的赋值: 根据数组的元素下标
num1[0]=10; num1[2]=20;
-
C查看数组的元素 :根据数组的元素下标
-
一个一个查看
//查看数组的值 int temp=num1[0]; int temp1=num2[3]; System.out.println(temp); System.out.println(temp1); System.out.println(num1[num1.length-2]); 在去 使用元素下标获取数组中的元素值的时候,可以使用数组.length进行计算。用来接收数组元素的变量的数据类型必 须数组的类型一致。
-
使用循环查看数组中的所有元素
// for(int i=0;i<num2.length;i++) { // System.out.println(num2[i]); // } 在使用for循环的时候,一定要避免是数组的元素下标越界。否则会报如下异常
-
增清型的for循环的使用;
//使用for each 循环 for(int temp:num2) { System.out.println(temp); } 不需要自己考虑数组的长度,但是临时变量的数据类型必须与数组的类型保持一致。除非是数组的大类型。
-
多维数组
多维数组就是一维数组中的元素是数组。 public static void main(String[] args) { //创建两个数组 int [] num1=new int[3]; int [] num2=new int[] {1,5,68,54,30,60}; //创建多维数组 int [][] num3=new int[2][]; num3[0]=num1; num3[1]=num2; for(int i=0;i<=num3.length-1;i++) { for(int j=0;j<num3[i].length;j++) { System.out.println(num3[i][j]); } } //System.out.println(num3[1][1]); //num3[0][0]=20; ///* num3[0][1]=30; */ //num3[1][0]=30; //num3[2][0]=40; / ///System.out.println(num3[0][1]); // System.out.println(num3.length); //普通for循环进行打印输出 //增强型for循环 //for(int[] temp:num3) { //for(int temp1:temp) {
//System.out.println(temp1);}
-
9.3数组的更新和排序
9.31冒泡排序
- 冒泡排序 用两两相比
从小到大 如果前一个位置比后一个大交换位置,
思想:相邻两个数进行比较,第一波比较后,最大的数在最后。(每比较完之后,后面的数就减少一个比较 )
9.32选择排序
- 选择一个位置的值和该位置后边的每一个值进行比较
选择排序,让数组中的每一个数,依次与后面的数进行比较,如果前面的数大于后面的数,就进行位置的交换。换个说法,选择排序:第一个数依次与
后面的数比较,第一次比较完之后最小的数在最前面
9.4使用java自带的Arrays进行数组的操作
-
sort对数组中的元素进行升序排序
toString 返回指定数组内容的字符串表示形式int age[]=new int[]{5,44,2,12,56,45,1}; Arrays.sort(age); System.out.println(Arrays.toString(age)); 输入结果 [1, 2, 5, 12, 44, 45, 56]
-
fill 将指定的值分配给指定的每个元素
-
equals 如果指定的两个数组彼此相等 则返回true
9.5使用java自带的String进行数组的操作
-
length 返回此字符串的长度
-
equals比较此字符串与指定的对象。当且仅当该参数不为 null,并且是表示与此对象相同的字符序列的 String 对象时,结果才为 true。
-
valueOf//转换为String字符串类型
String.valueOf(id);
-
replace 进行替换
aaa.replace(oldChar, newChar)
-
toCharArray将字符串转换为数组
char[] charArray = aaa.toCharArray();
-
split 进行截取,将一个字符串根据规定内容分为多个字符串
String[] split = aaa.split("5");//用5为分界线进行截取
-
trim 去除前后空格
-
toUpperCase转换为大写
-
toLowerCase转换为小写
String str="aBCD"; String str1 = str.toUpperCase();//转变为大写 String str2=str.toLowerCase();//转变为小写
-
indexOf 从指定的索引开始搜索,返回在此字符串中第一次出现指定字符处的索引。
last IndexOf 从指定的索引开始搜索,返回在此字符串中第一次出现指定字符处的索引。 -
toString 返回此对象本身(它已经是一个字符串!
-
copyOf返回 char 数组参数的字符串表示形式。字符数组的内容已被复制,后续修改不会影响新创建的字符串。
# 10.oop面向对象
10.1类
- 什么是类
Class 类名{} 类名必须符合命名规则
在同一个java文件中,可以创建多个不同类名的类,但是只能有一个public修饰的主类,用public修饰的类名必须与java文件的名字一致。
10.1.1属性
属性称为静态部分, 变量数据类型
属性定义:用来描述对象或者类,数据类型可以使基本数据类型,也可以是引用数据类型,一个类可以被另外一个类当做属
性来引用,被引用的类就是该类的属性
-
全局属性
全局变量归整个类所有,它会给默认值,全局变量可以被当前所有的非静态static方法所调用。 -
局部属性
局部属性要想使用必须要先赋值才能使用,没有默认值作用于只在局部中,当局部变量和全局变量名字相同时候,采用局部优先原则。
10.1.2方法- 方法是什么?
动态部分(行为) 方法
- 构造方法
构造方法语法语法:public 类名(参数){ java代码}
-
有参构造方法
public 类名(【有参数】){ java代码}
a.是在new对象给对象赋值,给对象的属性赋值。如果类中没有属性就不能创建有参数构造方法,参数的个数可以是多个。不要超过属性的个数。 参数的名字可以与你要赋值的属性的名字一致,如果一致的话必须使用this关键字来进行参数和属性的区分。如果不用this就必须将参数的名字和属性的名不一样,但是参数的类型必须与要赋值的属性一致。
-
无参构造方法
public 类名(【无参数】){ java代码}
当类中没有任何构造方法的时候,会有一个默认的无参数构造方法,但是一旦类中有了有参数构造方法,就不会再有默认无参数构造方法。如果你在类中写了有参数构造方法,就一定要把无参数构造方法也显示的写出来。
-
构造方法的调用
-new Person(); 根据你空号中是否传值
- 方法是什么?
10.2对象
- 对象是通过new类得到,对象是具有自身属性和方法的类的一个具体的实例。
插入链接与图片
链接: link.
图片:
带尺寸的图片:
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block
var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | 'Isn't this fun?' | ‘Isn’t this fun?’ |
Quotes | "Isn't this fun?" | “Isn’t this fun?” |
Dashes | -- is en-dash, --- is em-dash | – is en-dash, — is em-dash |
创建一个自定义列表
-
Markdown
- Text-to- HTML conversion tool Authors
- John
- Luke
如何创建一个注脚
一个具有注脚的文本。1
注释也是必不可少的
Markdown将文本转换为 HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
新的甘特图功能,丰富你的文章
- 关于 甘特图 语法,参考 这儿,
UML 图表
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::
这将产生一个流程图。:
- 关于 Mermaid 语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
注脚的解释 ↩︎