一:java的基本语法
1.代码都是存放在class里面的
2.严格区分大小写(num NUM)是两个不同的变量
3.格式自由.
4.单行注释与多行注释的和文档注释
5.标识符:
全部使用英文字母,骆驼式命名:从第二个单词开始,每个单词的首字母都要大写,其它的小写
(标识符不能为关键字,不能以数字开头)
二:java中的变量
1.有八个原声数据类型和引用数据类型.
2.类型转换:
byte、short、char类型在运行过程中都会提升为int 类型(这样的方式叫自动类型)我们可以将一个int类型强制转换成byte、short、char类型 (需要强制类型转换!显示类型转换丢失精度.
System.out.println('a'+1); 因为 1是int类型的,所以会升级为int 类型.
System.out.println(""+'a'+1);(任何数字和字符串相并且都自动转换成字符串).
3.变量的生命周期:
在方法内定义的变量,当方法被调用的时候,变量被定义,当方法接收的时候。变量也会随着方法释放掉变量的作用域内是不可以重复定义,超出变量的作用域,变量将不能访问.
三:java中的函数
1.定义:函数,又称为方法,能够完成某特定代码的代码块,其个名字,方便于方法的调用函数的作用: 就是可以重复的去利用某一段代码
2.函数必须有的: 函数名 返回值 返回值类型 (形式参数看需求而定)
3.形参:方法定义的形参相当于在方法中定义了一个局部变量,当这个方法被调用的时候,也就是对其方法里面的参数初始化啦!初始值为传递进来的参数
4.返回值类型:可以为任意一个类型,有一种特殊:当方法没有返回值的时候,我们要把返回值类型定义为(void)
5.return :在方法中可以使用return 返回一个值,(返回的值必须是与返回值类型一致)
6.方法的重载:
多个函数具有相同的名字,参数的个数或者类型不同都可以. 返回值类型不能做衡量方法的重载
四:java中的运算符
1.算术运算符 % 取模,也叫做取余
++自增1,--自减1
++x 与x++的区别: 本质上是没有区别的,x++是先参与运算再自加 ,而++x先自加一次才参与运算
在取模运算中,模数的符号会被忽略,被模数符号不能被忽略
2.赋值运算符 = 是赋值的意思
+= ,-=,*=,\=,%=
3.比较运算符号: == 是相互比较的意思
instanceof:判断该对象是否是属于指定的类型
4.逻辑运算符
&和&&的区别:
1. &&如果左边为假,结果注定为假,右边不参与运算
2.&如果左边为假,结构注定为假,但是右边会参与运算
|和||的区别:
1.如果左边为真,结果注定为真,右边不参与运算
2.如果左边为真,结果注定为真,右边参与运算
5.位运算符
&(与):真真得真,真假得假,假假得假
|(或):真假为真,真真为真,假假为假
^(异或):任何一个数与一个指定的数异或两次,其结果等于本身,(第一个数异或第二个数 其结果再异或第二个.其结果等于它本身)(不同为1,相同为0)
移位运算符:
<<左移,砍掉高位,低位补0 一定要把它更改成32位。(左移N位相当于乘以2的N次方)
>>右移,砍掉低位,高位要看最高位的符号。符号位为1,就补1,符号位为0就补0(右移N位,相当于除以2的N次方)
6.switch
switch中的参数是必须是int类型的,但是byte,short,char都是隐式的自动类型提升啦~
break :结束循环
continue:提前结束本次循环,进入到下一次循环
总结:后期学习不认真!估计时间不安排好!!。。注意。
小算法复习:
/*
不用第三方变量交换两个数的值
异或:第一个数异或第二个数,之后再把结果异或第二个数。其结果等于它本身!
1.<<最高位砍掉,最低位补零
(左移多少位,其实就是*2的N次方)
2.>>最低位砍掉.如果最高位是1,前面就是补1,否则补0
//(又移多少位,就是/2的N次方)
*/
class Demo
{
public static void main(String[] args)
{
int a = 3;
int b = 5;
a = a ^ b;
b = a ^ b;
a = a ^ b ;
System.out.println("a == "+a);
System.out.println("b =="+b);
}
}
/*某个培训中心要为新到的学员安排房间,假设共有x个学员,
每个房间可以住6人,让你用一个公式来计算他们要住的房间数
*/
class Demo
{
public static void main(String[] args)
{
int num = 48;
int homeNuber = getHomeNumber(num);
System.out.println("学生的个数为:"+homeNuber);
}
static int getHomeNumber(int num) //形式参数的初始化其实就是传递进来的参数帮他初始化啦~
{
return (num+5)/6; //给一个最大的限度!
}
}
/*
利用无限循环实现0 - 9 之间的数之间的重复循环
*/
class Demo
{
public static void main(String[] args)
{
int x = 0;
while(true)
{
x = (x+1)%10;
System.out.println(x);
}
}
}
/*
利用小技巧把10进制转换成2进制代码!
*/
import java.io.*;
class Demo
{
public static void main(String[] args) throws Exception
{
//读取键盘
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
System.out.println("本程序可以帮助您把十进制代码转换成二进制代码:");
String line = br.readLine();
int num = Integer.parseInt(line);
StringBuffer sb = new StringBuffer();
while(num>0)
{
int temp = num % 2; //获取到除以2的余数!
sb.append(temp);
num = num / 2;
}
sb.reverse();
System.out.println(sb);
}
}
/*
十进制转换成十六进制之方法一。
*/
import java.io.*;
class Demo5
{
public static void main(String[] args) throws Exception
{
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
System.out.println("本程序可以通过十进制转换成十六进制:");
String line = br.readLine();
int num = Integer.parseInt(line);
StringBuffer sb = new StringBuffer();
while(num>0)
{
int temp = num % 16;
if(temp>9)
{
sb.append((char)(temp-10+'A'));
}else
{
sb.append(temp);
}
num = num / 16;
}
sb.reverse();
System.out.println(sb);
}
}
/*
用移位的方法来求一个数
十进制转换成十六进制
*/
import java.io.*;
class Demo
{
public static void main(String[] args) throws Exception
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("本程序可以帮助您从十进制转换到十六进制:");
String line = br.readLine();
int num = Integer.parseInt(line);
Ten2Hex(num);
}
static void Ten2Hex(int num)
{
StringBuffer sb = new StringBuffer();
int count = 0x00000000f;
for(int i = 0;i<8;i++)
{
int temp = num & count;
if(temp>9)
{
sb.append((char)((temp-10)+'A')); //类型要注意
}
else
{
sb.append(temp);
}
num = num >>4;
}
sb.reverse();
System.out.println("结果为:"+sb);
}
}
/*
打印金字塔程序!
求算法的时候要注意:
找到求第一个的规律.
然后循环就可以。
*/
class Demo
{
public static void main(String[] args)
{
int n = 4;
for(int i = 0;i<n;i++)
{
for(int j = 0;j<n-i;j++)
{
System.out.print(" ");
}
for(int k =0;k<i*2-1;k++)
{
System.out.print("*");
}
System.out.println();
}
}
}
总结:
其实switch的参数必须是int类型的,为什么byte char short参数可以传递进来呢?
因为它的类型自动提升为int类型啦。也就是隐式的进行了强制转换/所以是可以的.