初学java

一 、Java语言基础
1.Java程序基本组成单元—类,每个应用程序必须包含一个main()方法,含有main()方法的类称为主类。Package为包的关键字
2.整数类型:用来存储整数数值,即没有小数部分的数值,可正可负,有三种表现类型:十进制,八进制,十六进制
八进制:必须以0开头;
十六进:必须以0x/0X开头
3.浮点型:double , float ,float型变量必须加f,double后不必须加d
4.字符型:
1)char 储存单个字符(同c语言);
2)转义字符:
5.布尔类型:(逻辑类型)boolean
只有true和false。

数据类型 内存空间(8位等于1字节) 取值范围
byte 8位 -128-127
short 16位 -32768-32767
int 32位 -2147483648-2147483647
long 64位 -923372036854775808-9223372036854775807
float 32位 1.4E-45-3.4028235E38
double 64位 4.9E-324-1.7976931348623157E308

  1. 关键字
    被java语言赋予了特殊含义的单词(关键字中所有字母都为小写)

7.标识符
(自定义名称 a-z A-Z 0-9 (数字不能开头)$ _ )
main不是关键字但可以被虚拟机识别
包名:多单词组成是所有字母都小写
类名.接口名:多单词组成时,所有首字母大写
变量名和函数名:多单词组成时第一个单词首字母小写,第二个单词开始每个首字母大写
常量名:所有字母大写多单词是每个单词用下划线连接,AAA_BBB_CCC
整数类型(byte,short,int long)
浮点类型(float,double)
基本数据类型 字符型 字符常量(‘ ’)
字符串常量(“ ”)
布尔型 (true flase) 用于判断真假
null(空)常量
8.常量:程序运行过程中已知不会改变的量成为常量(final常量) 在整个程序中只能被赋值一次
9.变量:在程序运行过程中,空间内的值是变化的,这个内存空间就成为变量
明确数据类型、变量名称、数据(格式:数据类型 变量名 = 初始化值)
eg: 1%-5 1
-1%5
-1 (取模中看左边正负,右边什么符号都不管)
\n 转意字符放被转义前
10.逻辑运算符:
1)& 与 均为真true 才真(无论左边真假右边都运算) 结合方向:从左到右
&& (短路) 若左边为真只运算左边右边不算,若左真则运算右边 结合方向:从左到右
2)|| 或 有一个true则true 都false 则false 结合方向:从左到右
3)! 非 结合方向:从右到左

11.算数运算符: + , -, * , /, %
12.位运算符:
1)& 按位与 双目运算符
2)| 按位或 双目运算符
3)~ 按位取反(按位非) 单目运算符 将二进制中的1修改为0 ,0修改为1
4)^ 按位异或 双目运算符 当两个操作数的二进制数表示相同时(同为0或同为1)时,结果为0,否则为1,两个操作数的精度不同时,结果数的精度与精度高的操作数相同
5)<<:左移
>>:右移 如果最高位是0,右移空的为就填0,如最高位为1,右移空的为就填入1
>>>:无符号右移 无论最高位是1/0,左侧被移空的高位都填入0
13.三目运算符: 条件式 ?表达式1 :表达式2
若条件式为true 则取表达式1,否则取表达式2
14.自增和自减运算符:
++a (–a) 先加(减)后用
a++ (a–) 先用后加(减)
15.比较运算符:> < == >= <= !=
16.运算的优先级顺序:
增量和减量运算
算数运算
比较运算
逻辑运算
赋值运算
17.数据转换:
1)隐式转换
byte,short,char int --> int
byte,short,char,int long–> long
byte,short,char,int,long float–>float
byte,short,char,int,long,float float–>double
2)显式转换
int a = (int) 45.23;
long y = (long)456.6F;
int b = (int)‘d’;
二 、复合语句(循环)
1.复合语句:以整个块为单位,能够用在任何一个单独语句可以用到的地方,并且在复合语句中还可以嵌套复合语句
2.1)if 语句:(格式: if(布尔表达式){ 语句序列 }
if else 会针对某种条件有选择地做出处理(表现:若满足某条件则进行处理否则进行另一种处理)
2)switch 多分支语句:(格式:switch (表达式)表达式的值必须是整型,字符型或字符串型)
注:if和switch语句很像,如果判断的具体数值不多,而且符合byte short int char 这四种类型
虽然两种语句都可以使用,建议用switch 效率高
其他情况:对区间判断,对结果为boolean类型判断使用 if,if范围更广
3.while 语句:当条件表达式大返回值为真时,则执行“{ }”中的语句,当执行完“{ }”中的语句后,重新判断条件表达 式的返回值,直到表达式返回的结果为假时,退出循环(先判断在执行)
4.do while语句:先执行一次循环在判断条件是否成立(do while 至少执行一次)
5.for :(格式:for (表达式1;表达式2;表达式3))
表达式1:初始化表达式,负责完成变量的初始化
表达式2:循环条件表达式,值为boolean型的表达式,指定循环条件
表达式3:循环后操作表达式,负责修整变量, 改变循环条件
6.break,continue:break:结束当前循环 continue:跳出本次循环
三 、 数组
1.(储存数据的集合)
元素类型[] 数组名 = new 元素类型[元素个数或数组长度]
栈内存 数据使用完毕,会自动释放
堆内存 new 出来的都在 堆 里(数组在 堆 里)
特性1)堆里的每一个存放实体都有各自的位置 都有各自的地址值(是个数)
2)堆内存中实体是用来封装数据的,而堆内存中的实体都有默认初始化值,在不赋值的情况下堆中为默认值
默认值为多少不固定依据数组中数据类型决定 int 0 double 0.0 float 0.0f boolean faluse
3)垃圾回收机制
2. 数组的操作:获取数组中的元素
通常会用到遍历
//int [] arr = new int [3];
数组中有一个属性可以直接获取到数组的元素个数,length
使用方式:数组名称.length =
System.out.println(“length:”+arr.length);
3.最值只适用于数值型数组,boolean型数组无最值只有true false
获取数组中的最大值以及最小值
思路:
1) 获取最值需要进行比较每一次比较都会有一个较大的值,因为该值不确定
通过一个变量进行临储
2.)让数组中的每一个元素都和这个变量中的值进行比较,如果大于了变量中的值,就用该变量记录较大值
3)当所有的元素都比较完成,那么该变量中存储的就是数组中的最大值
4.选择法排序:(升序排序)
内循环结束一次,最值出现在头角标位置a 0
public static void selectSort(int[] arr) //选择法(部分)
{
for(int x=0;x<arr.length-1;x++)
{
for(int j=x+1;j<arr.length;j++)
if(arr[x]>arr[j]) { int temp = arr[x];
arr[x]=arr[j];
arr[j]=temp;
}
}
5.冒泡排序:相邻的两个元素进行比较,
如果符合条件换位(第一圈最值出在最后位,若升序排序,则最大值先排出来)
public static void bubbleSort(int[] arr) //效率偏低 (冒泡法 部分)
{
for(int x=0;x<arr.length-1;x++) //for(int x=arr.length-1;x>0;x–) 性能更高
//for(int y=0;y<x;y++)
{
for(int y=0;y<arr.length-x-1;y++)//-x:让每一次比较的元素减少, -1:避免角标越界
{
if(arr[y]>arr[y+1])
{
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
}
6.折半查找法 缩小范围查找(提高效率但要求数组必须有序)
public static int halfSearch(int[] arr,int key)
{
int min,max,mid;
min=0;
max=arr.length-1;
mid=(max+min)/2;
while(arr[mid]!=key)
{
if(key>arr[mid]) min = mid +1;
else if (key<arr[mid]) max = mid -1;
if(min>max) return -1;
mid = (max+min)/2;

	}
	return mid;
}

(未完)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值