基础内容

1.如何高效的学好java

多写代码,多写笔记,多写文章
多练交流,多练思维,多练技能
多分享,多提问,多思考
最重要(坚持)

2.计算机应用领域

1)科学计算
2)数据处理
3)自动控制
4)计算机辅助设计
5)人工智能

3.计算机硬件组成

cpu,主板,内存,电源,主机箱,硬盘,显卡,键盘鼠标,显示器…
io设备(input/oupput):输入输出设备

4.计算机软件

计算机软件分为系统软件与应用软件

系统软件:DOS,Windows,Linux,Unix,IOS,Android,Mac
#应用软件:WPS,QQ,微信,英雄联盟,绝地求生…

5.DOS命令

DOS命令:

命令 用法
exit 退出当前DOS命令窗口
DOS复制: 窗口中任意位置点击鼠标右键
dir 列出当前目录下的所有子文件/子目录
cd ( change directory【改变目录】)
cd … 回到上级目录
cd \ 直接回到根部路径
c:回车 d:回车 e:回车 f:回车 切换盘符
Ipconfig 查看IP地址
Xxx -version 查看版本
Del * 删除
md 创造一个文件夹
rd 删除文件夹(必须为空)
rd /s /q 强制删除
rd /s 带内容的目录(文件夹):询问是否删除这个目录
cls 清楚屏幕

6.Java的特性与优点

1.简单性
2.面向对象
3.可移植性(跨平台性)
4.高性能
5.分布式
6.动态性
7.多线程
8.安全性
9.健壮性

7.Java的三大版本

JavaSE:标准版(桌面程序,控制台开发…)
JavaME(手机,小家电…)
JavaEE(Web端,服务器开发…)

8.java的基本含义:

JDK:(Java Development Kit)java开发工具包
JRE:(Java Runtime Envirment)java运行环境
JVM:(Java Virtual Machine)java虚拟机

下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

安装jdk完成之后:进入dos,输入java -version:查看当前本地的jdk的版本信息
安装好jdk之后:需要在安装目录的bin目录去使用的编译命令和执行命令

javac.exe 编译命令
java.exe 运行命令

path环境(系统配置):

配置path环境变量的原因:### 三级标题
我们需要在任何目录下使用javac和java对Java源文件进行编译和运行

方式1:(存在弊端)
win10/win8---->此电脑---->右键属性---->高级系统设置---->环境变量---->系统变量 找到path将jdk安装目录的bin路径复制到path里面即可!

path: jdk\bin的路径

弊端:
1)当jdk版本升级了,开发者需要手动更改path:可能造成的path其他变量更改了,所以不好!
2)二阶段使用tomcat服务器(使用java编写的),启动的时候会寻找计算机中系统变量中的path是否存在
JAVA_HOME,如果找不到,服务器启动时候出现"闪屏";

使用方式2:(推荐):
win10/win8---->此电脑---->右键属性---->高级系统设置---->环境变量---->系统变量

新建变量名:
JAVA_HOME
变量值:
jdk路径

优点:

1)不需要手动更改path
2)tomcat服务器启动的时候,找到JAVA_HOME变量,就不会出现闪屏

path环境变量的执行流程:

写好了java文件,对java文件进行编译和运行;

1)首先需要在dos中找到java文件的目录,如果找不到

2)就会在path环境变量中找%JAVA_HOME%\bin

3)如果path中都没有这个文件,那么久会提示 找不到文件…

classpath:临时环境变量(了解):
classpath执行流程:先在系统变量中寻找是否存在classpath的路径
如果存在优先的是这里面的xxx.class文件

基础语法

1.注释

单行注释

//注释当前行

多行注释

/*
注释内容
注释内容
...
*/

文档注释(javadoc)
Javadoc命令是用来生成自己的API文件
参数信息 :
1.@author:作者名
2.@version:版本号
3.@since:指明需要最早的jdk版本
4.@param:参数名
5.@return:返回值情况
6.@throws:异常抛出情况

/**
*\javadoc注释
*\javadoc注释
*\javadoc注释
*\javadoc注释
...
*/

2.标识符与关键字

2.1标识符

什么是关键字?
被Java语言赋予特定含义的单词!

用于定义数据类型的关键字 名称
class interface,byte,short,int
long float,double,char,boolean
void
用于定义数据类型值的关键字
true false,null
用于定义流程控制的关键字
if else,switch,case,default
while do,for,break,continue
return

2.2关键字

什么是标识符

​ 在Java原程序当中凡是程序员有权利自己命名的单词都是标识符(黑色字体)

​ 可以标识的元素:类名、方法名(main)、变量名、接口名、常量名(srgs)…

标识符的组成:

​ 一个合法的标识符只能由“数字、字母、下划线_、$”组成,不能含有其他符号

开头不能是数字
​ 严格区分大小写
​ 关键字(蓝色的)不能做标识符
​ 理论上无长度限制,最好不要太长

如果是单个单词:
字母全部小写
举例:

main()int price=100;

如果是多个单词:
第一个单词字母全部小写,从第二个单词开始每个单词首字母大写,其余小写(小驼峰命名法)

举例:

cheacUserNmae()int applePrice=100;

给常量命名的规则:
如果是单个单词:字母全部大写(推荐多个单词)

举例:

HELLO=100;

如果是多个单词:每个单词字母大写,单词和单词使用下划线隔开
举例:

HELLO_WORLD=100;

3.数据类型

3.1基本数据类型

3.1.1数值类型

整数类型
1.byte占一个字节的位置,取值范围是:-127-128,默认值为0;
2.short占两个字节的位置,取值范围是:-32768-32767,默认值为0;
3.int占四个字节的位置,取值范围是:-2147483648-2147483647,默认值为0;
4.long占八个字节的位置,取值范围是:-9223372036854775808-9223372036854775807,默认值为0
浮点类型
1.float占四个字节的位置,默认值为0.0f;
2.double占八个字节的位置,默认值为0.0d
字符类型
char占两个字节的位置,取值范围是:0-65535,默认值为false(0)

3.1.2boolean类型

占一个位的位置,其值只有True和False两个

字节

字节:是计算机中处理数据的基本单位,习惯用B。
1 byte = 8 bit(1bit表示一个二进制位)

1 KB = 1024 byte

1 MB = 1024 KB

1 GB = 1024 MB

1 TB = 1024 GB

整数型当中的byte类型,占用1个字节,所以byte类型的数据占用8个比特位。

3.2引用数据类型

数组 ,类,接口

3.3数据类型拓展

进制
二进制:0b
八进制:0
十进制
十六进制:0x

3.4数据类型的转换

由低到高
byte,short,char–>int–>long–>float–>double

public   calss 练习{public static void main(String[] args){/*100L是long类型字面值x是long类型变量不存在类型转换,直接赋值*/long x=100L;/*x是long类型,8个字节y是int类型,4个字节编译报错,大容量不能直接变一个小容量int y=x;大容量转换小容量,需要进行强制类型转换强制类型转换需要加“强制类型转换符”加上强制类型转换符之后编译通过了,但是运行阶段可能损失精度随意强制类型转换谨慎使用,因为损失精度之后损失很严重强制转换原理原始数据 00000000 000000000 00000000 00000000 0000000 0000000 00000000 01100000强制转换之后:00000000 0000000 00000000 01100100将左边的二进制砍掉!*/int y=(int)x;System.out.println(y);/*原始数据:00000000 000000000 00000000 00000000 10000000 00000000 00000000 000000000强制转换之后的数据:10000000 00000000 00000000 00000000(补码形式)以上补码转换到原码就是最终结果*/long k=2147483648L;int e=(int)k;System.out.println(e);//损失精度非常严重,结果是负数【-2147483648】/*依据目前内容,以下程序无法编译理由:50是int类型的字面值,b是byte类型的变量显然是大容量int转换成的小容量byte大容量转换成小容量是需要添加强制转换符的,一下程序没有添加强制转换符号,所以编译报错但是,实际编译时,以下代码通过了,盖子面值可以直接赋值给byte类型的变量*/byte b=50;//可以byte c=127;//可以//编译报错,128这个int类型的字面值超出了byte类型的取值范围,不能直接赋值给byte类型的变量//byte b1=128;byte b1=(byte)128;//-125/*纠正错误,需要使用强制类型转换符,但是一定会损失精度原始数据:00000000 00000000 00000000 10000000强制转换之后10000000【这是储存在计算机内部的,这是一个补码,】System.out.println(b1);*/}
}

注意:
1.有多种数据类型混合运算时,系统首先自动将所有数据转换为容量最大的那种数据类型,然后再进行计算
2.当我们把容量大的数据类型赋值给容量小的数据类型时就会报错,反之则会自动转换
3.byte(short)和char之间不会相互自动转换
4.byte,short,char它们三者可以计算,在计算时首先转换为int类型
5.boolean不参与转换
6.自动提升原则:表达式结果的类型自动转换为操作数中最大的类型。

4.变量

变量是什么?
变量就是可以变化的量
变量本质上来说是内存中的一块空间,这块空间数据类型、有名字、有字面值
变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域

变量的声明/定义变量名的格式
数据类型 变量名(合法标识符)

注意事项
1.每个变量都有类型,类型可以是基本类型也可以是引用类型。
2.变量名必须是合法的标识符。
3.变量声明是一句完整的语句,因此每一个声明都要以分号结束

变量的赋值:
语法格式:变量名=字面值(“=”是赋值运算符 )

Int i=10;//声明和赋值可以放在一起完成/*
变量赋值之后,可以重新赋值(变量值可变)有了变量的概念之后,内存空间得到后可重复使用
*/int i=10;System.out.println(i);//10int i=100;System.out.println(i);//100......

变量的作用域
作用域:变量的有效范围,在什么范围之内是可以被访问的,只要出了这个范围,变量就不会被访问了。出了{}就不认识了。

变量的分类:
根据变量声明的位置来分类:

局部变量:在方法体中声明的变量

成员变量:在方法体外,类体之内声明的变量

(不同作用域中,变量名可以重名;同一作用域中,变量名不能重名)

变量的命名规范
1)所有变量,方法,类名:见名知意
2)类成员变量:首字母小写和驼峰原则,mounthSalary
3)局部变量:首字母小写和驼峰原则
4)常量:大写字母和下划线,MAX_VAULE
5)类名:首字母大写和驼峰原则,Man,GoodMan
6)方法名:首字母小写和驼峰原则,run(),runRun()

5.常量

初始化之后不会再改变值
1)字面值常量
整数常量:所有的整数
小数常量:所有的小数
字符常量:单引号引起来,只有一个字符,必须有内容
字符串常量:双引号引起来的内容,可以写多个,也可以不写
布尔常量:只有两个值,true和false
空常量;只有一个值

**字符串常量:**使用双引号包裹起来的内容:称为"字符串常量"
举例:
“我爱高圆圆”
“HelloWorld”
**字符常量:**使用单引号包裹起来的内容
举例:
‘a’,‘A’,‘0’
‘我’
‘abc’ 非法数据(只能单引号括起来的单个内容)
整数常量:
100 包含"进制" 整数----默认十进制
64

小数常量:
3.14
12.56
布尔常量:true false

空常量:null
引用数据类型默认值null

2)自定义常量
(面向对象后面讲:关键字:final:状态修饰符)

6.运算符

运算符有优先级,一个表达式当中有过多个运算符,不确定的加(),优先级得到提升

​ ++出现在变量后,先做赋值运算,在对变量中保存的值进行自加1

int a=100;
int b=a++;
//a=a+1;
System.out.println(a);//101
System.out.println(b);//100int e=100
System.out.println(e++);//100
System.out.println(e);//101

++出现在变量前,先进性自加1,在进行赋值

int n=200;
//n=n+1;
int m= ++n;
System.out.println(n);//201
System.out.println(m);//201int n=200;
System.out.println(++n);//201
System.out.println(n);//201

关系运算符
​ 关系运算符的运算结果一定是布尔类型:true/false

逻辑运算符
​ & 逻辑与 (两边的算子都是真,结果才为真)

​ | 逻辑或 (两边算子只有一个是真,结果就是真)

​ ! 逻辑非 (取反)

​ ^ 逻辑异或 (两边算子不一样(真假/假真),结果就是真)

​ && 短路与 (与逻辑与运算结果相同,不过短路与存在短路现象)

​ 前半被判为false,整句便是false,后半便不再执行(比逻辑与更智能)

​ || 短路或 (与逻辑或运算结果相同,不过短路或存在短路现象)

​ 前半为真,整句为真,后半不再执行

​ 逻辑运算符要求两边的算子都是布尔类型,并且逻辑运算符最终的运算结果也是一个布尔类型

赋值类运算符
基本的赋值运算符:
​ =

扩展的赋值运算符:
​ += -= *= /= %=

字符串连接运算符
关于java中的“+”运算符

1.加法运算(数字+数字)

2.字符串的连接运算(字符串+字符串)

3.在一个表达式当中可以出现多个“+”,在没有添加小括号的前提下,遵循自左向右依次运算

int a=1;
int b=2;
System.out.println(a+“+”+b+“=”+(a+b));//1+2=3
System.out.println(""+a+b);//12
System.out.println(a+b+"");//3

三元(三目/条件)运算符
语法规则:

布尔表达式?表达式1:表达式2

执行原理:

当布尔表达式结果为真时,选择表达式1作为整个表达式的执行结果

当布尔表达式结果为假时,选择表达式2作为整个表达式的执行结果

boolean sex=true;Char c =sex ? ‘男’:‘女’;//男

原码,反码,补码

1.二进制的最高位是符号位:0表示正数,1表示负数
2.正数的原码,反码,补码都是一样的(三码合一)
3.负数的反码等于它的原码符号位不变,其他位取反
4.负数的补码等于它的反码+1,负数的反码等于负数的补码-1
5.0的反码和补码都是0
6.在计算机运行的时候,都是以补码的方式来运算的
7.当我们看运算结果的时候,要看它的原码。

位运算符

位运算符 含义
<< 乘2的n次幂
“>>” 除2的n次幂
“>>>” 被移位二进制最高位无论是0还是1,空缺位都用0补。

A=00111100;
B=00001100;
A&B:按位比较,全1为1,有零为零:00001100
A|B:按位比较,有1为1,全零为零:00111100
A^B:按位比较,相同为0,不同为1:00110000
~B:比较上面的值,按位取反:11110011

包机制
为了更好的组织类,Java开发了包机制,用于区别类名的命名空间。
包语句的语法格式:
package pkg1[.pkg2[.pkg3…]];

一般运用公司类名的倒置用作包名

为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包,使用“import”语句
可以完成此功能。
import package1[.package2…].(classname|*);

Import com.xue.base.*//*代表会导入包中的所有类

流程控制

1.用户交互Scanner

我们可以通过Scanner来获取用户的输入。
基本语法:
Scanner s=new Scanner(System.in);

通过Scanner类的next()与nextLine()的方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

next():
1.一定要读取到有效的字符后才可以结束输入;
2.对输入有效的字符之前遇到的空白,next()方法会自动的将其去除掉;
3.只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符;
4.next()不能得到带有空格的字符串

nextLine():
1.以Enter为结束符,也就是说,nextLine()方法返回的是输入回车之前的所有字符;
2.可以获得空白

eg:输入一些数,可以计算出这些数的平均值及和,每输入一个数字用回车确认,通过输入非数字 来结束程序并执行结果。

2.顺序结构

3.选择结构

3.1if语句

if语句的语法结构:四种编写方式

/*PS.对于java中的if语句来说,只要有一个分支执行,整个if语句全部结束。*///第一种:
if(布尔表达式){
/*
java语句;
java语句;
java语句;
java语句;
...
*/
}//第二种:
if(布尔表达式){
/*java语句;
java语句;
...
*/
}else{
/*
java语句;
java语句;
...
*/
}//第三种:
if(布尔表达式){
/*
java语句;
java语句;
...
*/
}else if(布尔表达式){
/*
java语句;
java语句;
...
*/
}else if(布尔表达式){
/*
java语句;
java语句;
...
*/
}.....//第四种:
if(布尔表达式){
/*
ava语句;
java语句;
...
*/
}else if(布尔表达式){
/**
java语句;
java语句;
...
*/
}else if(布尔表达式){
/*
java语句;
java语句;
*/
...
}else{
/*
java语句;
java语句;
...
*/
}   

第二种编写方式和第四种编写方式都带有else分支,这两种方式可以保证100%会有分支执行。
所有的控制语句是可以相互嵌套使用的。只要河里嵌套就行。
嵌套使用时,代码格式保持完美。【该缩进时,必须缩进】
if语句的分支中只有一条java语句时,大括号可以不写。

3.2switch语句

switch语句的语法结构:

switch(int或String类型的字面值或变量){case int或string类型的字面值或变量:java语句;...break;case int或string类型的字面值或变量:java语句;...break;case int或string类型的字面值或变量:java语句;...break;Default:java语句;....
}

执行原理:

1 switch后面小括号当中的“数据”和case后面的“数据”进行一一匹配,匹配成功的分支执行。
2 按照自上而下的顺序依次匹配。
3 匹配成功的分支执行,分支当中最后有“break”语句的话,整个switch语句终止。
4 匹配成功的分支执行,分支当中没“break”语句的话,直接进入下一个分支执行(不进行匹配),这种现象被称为case穿透现象(提供break语句可以避免穿透现象)
5 所有分支都没有匹配成功的话,当有default语句时,会执行default语句中的
6 switch后面和case后面只能是int或string类型的数据,不能是其他类型
当然byte short char也可以直接写到switch和case后面,因为他们可以进行自动类型转换转换成int类型。
7 case可以合并:

int i=10;switch(i){case1:case2:case3:System.out.println(“test code!”);}

4.循环结构

4.1 while循环

while循环的语法结构:

while(布尔表达式){循环体;
}//表达式为true时,执行循环体

while循环的循环次数:0到N次,while循环的循环体可能一次都不执行

//输出0-10:
public class ArrayOutPut {public static void main(String[] args){int i=0;while (i<10){System.out.print(i+"\t");i++;}}
}

4.2do…while循环

\do…while循环的语法结构:

do{
循环体;
}while(布尔表达式);

do…whlie循环体代码片段执行次数是:1-N次(至少一次)

do…while循环的注意事项:do…while循环语句最终有一个分号

4.3 for循环

for语句的语法结构:

for(初始化表达式;布尔表达式;更新表达式){//是需要重复执行的代码片段【循环体:由java语句构成】
}
eg:
public class JavaApplication5 {public static void main(String[] args) {for(int i=1;i<=10;i+=2 ){System.out.println("i="+i);}for(int j=2;j<=10;j+=2 ){System.out.println("j="+j);}for(int k=10;k>0;k-- ){System.out.println("k="+k);}for(int z=100;z>0; ){System.out.println("z="+z);z-=10;}}
}

循环语句和条件判断语句嵌套使用

最好不要想太多,即使循环体当中是一个for循环,不要将这个for特殊化,

【for和if的嵌套】

eg2:

//100以内的所有质数
public class ForFor嵌套求质数 {public static void main(String[] args) {//给范围for(int i=2;i<=100;i++){//求素数boolean sushu = true;for(int j=2;j<i;j++){if(i%j==0){sushu = false;break;}      }//输出if(sushu){System.out.print(i+"\t");}}   }
}

eg3:

//10000以内的所有质数,每八个数字换一行//方法①
public class ForFor嵌套求质数 {public static void main(String[] args) {int count=0;//给范围for(int i=2;i<=10000;i++){//求素数boolean sushu = true;for(int j=2;j<i;j++){if(i%j==0){sushu = false;break;}      }//输出if(sushu){count++;System.out.print(i+"\t");if(count%8==0){System.out.println();}}}   }
}//方法②
public class 求质数升级版 {public static void main(String[] args){int count=0;for(int i=1;i<10000;i++){boolean sushu = true;for(int j=2;j<i;j++){if(i%j==0){sushu = false;break;}      }//输出if(sushu){count++;System.out.print(i+"\t");if(count==8){System.out.println();count=0;}}}  }
}

增强for循环
语法格式:
for(声明语句:表达式){
代码句子
}
eg:数组中输出 数组中的所有元素

public class forZengQiang {public static void main(String[] args){int[] numbers = {10,20,30,40,50};for(int x:numbers) {System.out.println(x);}
}
}

4.4跳转语句

4.4.1break
break是Java语句中的关键字,翻译为“中断/折断”
break+“;”可以成为以单独的完整java语句:break;
break语句使用在switch语句当中,用来终止switch的语句执行。
break语句同样可以使用在循环语句当中,用来终止循环的执行
break语句使用在for、while、do…while循环语句当中用来跳出循环,终止玄幻的执行。因为当程序循环到某个条件的时候,后续循环没必要执行,在执行也是耗费资源,所以可以终止循环,这样可以提高程序的执行效率。
在默认情况下,break终止的是离他最近的循环语句:

4.4.2continue
continue表示是:继续/下一个
continue的java语句:continue;

break和continue的区别:
break:跳出循环

continue:进入下一循环

见下文…

Java基础内容/基础语法/流程控制相关推荐

  1. JAVA入门基础(5)—— 流程控制

    前言 前面两篇已经了解了java语言基础,本篇开始对java的流程控制进行学习.流程控制对任何一门编程语言都是极为关键的,也是学好java基础中的基础,为控制程序步骤提供基本手段. 复合语句 java ...

  2. Java 基础 引用数据类型 和 流程控制

    引用数据类型 与定义基本数据类型变量不同,引用数据类型的变量定义及复制有一个相对固定的步骤和格式: 数据类型 变量名 = new 数据类型();如:String st = new String();s ...

  3. 【零基础 快速学Java】韩顺平 p104-147 流程控制:顺序、分支、循环、跳转 控制语句 (if、for、while、dowhile、break、continue、return)

    课程 p104-147 流程控制介绍 在程序种,程序运行的流程控制决定程序是如何执行的. 主要有三大流程控制语句: 顺序控制 分支控制 循环控制 顺序 简单理解就是从头到尾. 分支控制if-else ...

  4. Linux Shell 基础语法 流程控制 逻辑运算 字符串操作详细解析

    文章目录 1 shell 简单入门 1.1 shell分类 1.2 shell脚本 1.3 Shell 脚本四种启动方式 2 shell 变量 2.1 普通变量 2.1.1 定义变量 2.1.2 变量 ...

  5. MySql基础篇——变量、流程控制与游标

    一.变量 在mysql数据库中,变量分为系统变量以及用户自定义变量. 1.系统变量 1.1 介绍 系统变量由系统定义,属于服务器层面.启动mysql服务,生成mysql服务实例期间,mysql将为my ...

  6. JavaScript基础(三)流程控制

    流程控制 switch switch底层用的是 === 比较. 参考链接:http://www.cnblogs.com/codetker/p/4680996.html switch ("11 ...

  7. 一起来学java!!! day003 流程控制01 你掉了金斧头还是银斧头?

    java day003 流程控制 01 流程控制之分支结构 1. if 语句 if (/* 条件语句 */) {/*功能语句块*/} 流程:当执行if语句时,先会判断小括号内的条件语句,若条件语句为t ...

  8. python认识if语句_python初认识、基础数据类型以及 if 流程控制

    python初认识 CPU.内存.硬盘以及操作系统之间的关系 CPU:中央处理器,计算机的逻辑运算单元 硬盘:长期存储数据的地方,断电不会丢失 内存:位于CPU与硬盘之间,缓解高速CPU与低速硬盘之间 ...

  9. java语法\流程控制\方法\数组

    Java语法 注释 标识符 关键字 (1)注释(3种) 单行注释 //line comment 多行注释 /* block comment */ 文档注释 /** JavaDoc */ ​ 写注释是一 ...

最新文章

  1. 用SQL命令查看Mysql数据库大小
  2. Windows usb设备正在使用中
  3. 关于WM_NCHITTEST消息(移动无标题对话框多个)
  4. 【风控建模】在python中使用评分卡技术
  5. 从网络IO看高性能框架
  6. Java购物车swing_JAVA课程设计--购物车
  7. 不讲武德,只用标签名就能做文本分类
  8. React Native官方DEMO
  9. Keil(MDK-ARM-STM32)系列教程(五)Configuration(Ⅰ)
  10. docker数据卷的使用 -v --volumes--from
  11. 挑战摩尔定律极限,揭秘阿里云神龙的封神之路
  12. 实例变量,局部变量,全局变量,静态全局变量。
  13. [OpenAirInterface实战-13] :OAI 基站配置文件详解
  14. 制作纯净的U盘启动盘(避免纯净系统安装后却内置垃圾软件)
  15. 什么是 MAC 地址?
  16. python中的exifread库只要一张图片就能获取你的精确位置
  17. echarts漏斗图鼠标移入时内部文字阴影/描边
  18. 中国互联网20周年谈GITC 2014
  19. 非标准武术擂台机器人的设计思想——机械结构的设计思想
  20. arcgis坐标系未定义_科学网—ArcGIS中的坐标系:基本概念和常用操作 - 李郎平的博文...

热门文章

  1. range函数python-Python|range函数用法完全解读
  2. T41—支持电池版智能视频处理器
  3. winxp文件、打印机共享故障排除方法及“操作无法完成.键入的打印机名不正确,或者指定的打印机没有连接到服务器上
  4. sql语句如何按产品类别查询,取出每个类别的前三条记录
  5. matlab 2017b破解版安装教程
  6. 游戏开发心得——资料篇——游戏行业的详细职位介绍与定义分析
  7. CardView 简介和使用
  8. 计算机游戏性能测评,四款大作鏖战 雷蛇灵刃游戏性能测试
  9. 4-four: 我收到的赞
  10. 情人节送女友什么礼物比较好,情人节送礼推荐