dir,md,rd,cd,cd..,cd/,del,exit,echo,*.txt,> .当前目录 ..上级目录
SUN公司在1995年推出
1. Java EE
2. Java SE
3. Java ME
特点:
1. 跨平台(JVM)
2. 完全面向对象
3. 安全可靠
在甲骨文官网 下载、安装JDK
JDK:
开发工具:java、javac、jar
JRE:
系统类库、JVM
修改建立环境变量:
JAVA_HOME 即安装目录
PATH %JAVA_HOME%\jre\bin;%JAVA_HOME%\bin;
命令行临时配置用:
set path=C:…
set path=path;%path%\bin;
start 开新窗口
临时 set classpath=D:\java\day01
set classpath=.;C:\;D:\
javac Demo.java
java Demo
class Demo
{
public static void main(String[] args)
{
System.out.println("Hello World !");
}
}
class:关键字,定义类,区分大小写(必须小写)
Demo:类名,每个单词首字母建议大写
public static void main(String[] args)
注意文件后缀名
关键字、标识符、注释、常量、变量、运算符、语句、函数、数组
包名: 都小写 xxxyyyzzz
类名、接口名: 所有单词首字母大写 XxxYyyZzz
变量名、函数名: 第一个单词小写,其余首字母大写 xxxYyyZzz
常量: 所有字母大写,且用_连接 XXX_YYY_ZZZ
// 单行注释
\*
多行注释
*/
/** 文档注释: */
通过明确数据类型和标识符实现。
int x = 4;
byte b = 2; //-128~127
short s = 30000;
long l = 4L;
float f = 2.3F;
double d = 34.56;
char ch = '4';
char ch1 = 'a';
char ch2 = '+';
char ch3 = ' ';
boolean bo = true;
boolean bo1 = false;
//当数据不确定,需要存储时就定义变量。
i++: ++在最后运行
++i: ++最先运行
“Hello” + “lo”:字符串连接符
System.out.println(“a=”+a+“,”+“b=”+b);
\n: 换行 \b: 退格
\r : 回车 \t: 制表符(Tab)
Linux:换行:\n
windows:换行:\r\n
dos:换行:\n
\”:双引号
\:反斜杠\
char c = '你';
+= -= *= \= %=
x+=4;//一次运算,自动强转
x=x+4;//两次运算,会自动转换,不会强转
== != > >= < <= instanceof
&与 |或 ^异或 !非 ~按位取反
&& 短路 与 || 短路 或
<< | >> | >>> |
---|---|---|
左移,相当于乘2^n | 右移,相当于除2^n 最高位补1或0(看原来正负) | 不论正负,最高位补0 |
一个数异或同一个数两次还是原来的数。可用于加密,解密。
//1. 高效2乘8
0000 0000 0000 0010 <<3 =0000 0000 0001 0000 即2<<3
//2. 对两整数变量值互换(不用第三方变量)
//用第三方temp(开发用这种)
//不用第三方
int n=3,m=8;
n=n+m;
m=n-m;
n=n-m;//局限性,int型溢出可能
第二种不用第三方方法
n=n^m;
m=n^m;
n=n^m;
(条件表达式)?表达式1:表达式2;
n>9?(char)(n-10):n;
自动类型提升
强制类型转换 b = (byte)(b+2);
Integer.toBinaryString(-6);
if( )//可判断大区间,用if范围更广,
{
}
else if( )
{
}
else
{
}
break( 跳出)
continue( 继续)
break语句:应用范围:选择结构和循环结构。
continue语句:应用于循环结构。
//用于数值少时, 不可判断 enum,boolean,float,double
// 只判断byte,short,int,char,甚至String(JDK7之后)
switch (表达式)
{
case 值1:
执行语句1;
break;
case 值2:
执行语句2;
break;
default:
break;
}
while (条件)
{
执行语句;
}
//
do {
执行语句;
} while (循环条件)
for (int i=0 ; i < 3;i++)
{
执行语句;
}
//变量作用域问题,不同于while,比较优秀
for (。。。;条件表达式;。。。)
while ( true )
for (;;;)//死循环
//累加思想,计数器
for (int x=0; x<5; x++)
{
for (int y = 0; y<5-x; y++)
{
System.out.print(y);
}
System.out.println(" ");
}
w :。。。。。。
。。。。。
break w ;
public static void function()
{
}
只和函数 参数列表 有关
**类型
个数**
与返回值类型无关
int[] arr = new int[]{3,1,2,4};
或者 int[] arr1 = {3,1,2,4};
int[] arr2 = new int[2];
arr2[0] = 50;
arr2[1] = 20;
for(int x=0;x<3;x++)
//或者
for(int x=0;x<arr.length;x++)
利用角标,记录临时值, 遍历 比较数组
一个元素和其他所有 未排序 元素比。
一般排序是 升序 排序。
public static void selectSort(int[] arr)
{
//对数组进行遍历
for(int x=0; x<arr.length-1; x++)
for(int y=x+1; y<arr.length;y++)
{
//符合条件,交换元素
if(arr[x]>arr[y])
{
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
相邻 未排序 元素相比较。
//最原始的冒泡排序,可以进行优化
//优化方向有减少比较次数,减少数据写入(交换,操作堆内存)
public static void bubbleSort(int[] arr)
{
//遍历数组
for(int x=0; x<arr.length-1; x++)
{
//-x:让每一次比较的元素减少
//一轮过后,最大数在最后面
for(int y=0; y<arr.length-1-x; y++)
{
if(arr[y]>arr[y+1])
{
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}
开发中要用 Arrays.sort(arr);
//利用查表法
//十进制(其实是二进制)转n进制
public static void trans( int num, int base, int offset){
if (num == 0 )
{
System .out.println( 0 );
return ;
}
char [] table ={'0','1','2','3','4','5','6','7','8','9',
'A','B','C','D','E','F' };
//临时容器
char [] arr = new char [ 32 ];
int pos = arr.length;
while (num != 0 )
{
int temp = num & base; //取低位
arr[--pos] = table[temp]; //查表
num>>>=offset; //右移
}
System .out.print( "0X" );
for ( int x = pos; x<arr.length; x++)
{
System .out.print(arr[x]);
}
}
//二维数组其实是由多个一维数组组成。