Java从入门到入土②

一、什么是标识符

1、在java程序中,可以自己命名的都是标识符,在editplus中以黑色字体高亮显示
  • 类名 HelloWorld
  • 方法名 main
  • 变量名 args
  • 接口名
  • 常量名
2、一个合法的标识符只能由数字、字母、下划线_、美元符号$组成,不能数字开头,区分大小写,关键字不能做标识符,不能太长、最好见名知意,遵守驼峰命名方式
3、类名、接口名:首字母大写,后面每个单词首字母大写。
4、变量名、方法名:首字母小写,后面每个单词受首字母大写。
5、常量名:全部大写

二、关键字

switch true false throw throws try catch ···

三、字面值

–10、100
–3.14
–“”abc“”
–true
字面值就是数据
字面值是java源程序的组成部分之一

四、变量

变量是内存中的一块空间
包含三部分:数据类型、名称、字面值【数据】
变量是内存中存储数据的最基础的单元

数据类型的作用?

不同的数据有不同的类型,不同的数据类型底层会分配不同大小的空间。
数据类型是指程序在运行阶段应该分配多大的内存空间。
int a,b,c=100; //a b尚未初始化,c为100

变量的作用域?

是指变量的有效范围
在不同的作用域当中,变量名可以相同的。
Java遵循“就近原则”

五、数据类型

第一类:整数型 byte short int long
第二类:浮点型 float double
第三类:布尔型 boolean
第四类:字符型 char
字符使用单引号
字符串使用双信号
字符串属于引用数据类型
基本数据类型 占用空间大小【字节】
byte 1
short 2
int 4
long 8
float 4
double 8
boolean 1
char 2
计算机在任何状态下只能识别二进制。

六、字符编码

01100001–按照ASCII编码–‘a’
unicode编码 有多种具体实现
UTF-8
UTF-16
UTF-32
Java采用的是Unicode编码方式,所以标识符可以写中文

转义字符前面加
char k=‘\’;//第一个""是转义字符 第二个是字符‘\’
long z=2147483648;
在Java中 2147483648 当成int类型范围超过了范围
修改为 long z= 2147483648L;不存在类型转换

强制类型转换原理:将左侧的二进制去掉
如 long k=2147483648L;
int e = (int)k;
原始数据
00000000 00000000 00000000 00000000 10000000 00000000 00000000 00000000
转化之后的数据
100000000 00000000 00000000 00000000
System.out.println(e);//损失精度严重,结果为负数【-2147483648】
浮点型
float
double精度太低,不适合做财务软件。
java.math.BigDecimal 为引用类型
SE类库字节码:…jre\lib\rt.rar
在java语言中,所有的浮点型字面值【3.0】,默认当做double类型来处理。
要想该字面值当做float类型来处理,需要在字面后加L
float f=(float)5.1;
float f=5.1L;

验证7是否是素数(只能被自己或1整除的才是素数)

7/1不需要
7/2 7%2!=0
7/3 7%3!=0
7/4 7%4!=0
7/5 7%5!=0
7/6 7%6!=0
7/7 不需要

int i=7;
boolean isSuShu = true;
for(int j=2;j<i;j++){//默认将i看成素数
		//j是什么 2 3 4 5 6 
		if(i%j==0)
		isSuShu=falsebreak}
System.out.println(isSuShu?i+"是素数":i+"不是素数")
从2-100中找出素数
forint i=2;i<=100;i++{
boolean isSuShu = true;
		for(int j=2;j<i;j++){//默认将i看成素数
		if(i%j==0){
			isSuShu=falsebreak}
		}
		if(isSuShu){
		System.out.println(i);
		}
}
从2-100中找出素数,并且8个数换行
int count=0;
forint i=2;i<=100;i++{
		boolean isSuShu = true;
		for(int j=2;j<i;j++){//默认将i看成素数
		if(i%j==0){
			isSuShu=falsebreak}
		}
		if(isSuShu){
			System.out.print(i+" ");// 注意print 和println的区别    print 不换行
			count++;
			if(count%8==0)//可以改成 count==8 然后归零
			{
			System.out.println();//换行
			}
		}
}

七、方法

方法的基础语法
–某一个功能只需要写一遍
–只需要给这个功能传递具体的数据
–这个功能完成之后返回一个最终的结果
使用这种方法invode
方法在C语言当中叫函数
方法体当中不能再定义方法
方法定义在类体当中,在一个类当中可以定义多个方法,方法编写没有先后顺序

public class MethodTest02{
	public static void main(string[] args){
	MethodTest02.sumInt(10,20);
	}
	public static class sumInt{int a, int b){
	int c = a + b;
	System.out.println(a+"+"+b+"="+c);
	}
}

1、关于修饰符列表 可选项,不是必须的 目前统一写成public static
类名.方法名
2、返回值类型
byte short int long float double boolean string char void …
3、同一个方法 在同一个类体当中,类名可以省略
4、return 出现在void 方法中是为了结束当前方法

八、面向对象

面向对象的三大特征:封装、继承、多态
生命周期当中
面向对象的分析:OOA
面向对象的设计:OOD
面向对象的编程:OOP
类-实例化-对象
对象又被称为实例/instance
对象–抽象–类

{
属性;//描述对象的状态信息
方法;//描述对象的动作信息
}
属性通常采用变量的形式定义的
引用数据类型
String.class SUN提供的
System.class SUN提供的
对象的创建和使用:

public class OOTest01{
	public static void main(string[] args){
 	//通过一个类可以实例化N个对象
 	//实例化对象的语法:new类名();
 	//new 是java当中的一个运算符
 	//new运算符的作用是创建对象,在JVM堆内存当中开辟新的内存空间
 	//方法区内存:在类加载的时候,class字节码代码片段被加载到该内存空间当中
 	//栈内存(局部变量):方法diamante片段执行的时候,会给该方法分配内存空间,在栈内存中压栈。
 	//堆内存:new的对象在堆内存中存储
 	int i=10;
 	Student s = new Student();
 	//S是一个变量名
 	//new Student()是一个学生对象 
 	//S是一个局部变量,在栈内存中存储
 	int  stuNo=s.no;
 	String stuName = s.name;
 	int stuAge=s.age;
 	boolean stuSex = s.sex;
 	String stuAddr = s.addr;
 	System.out.println("学号="+s.no);//0
 	System.out.println("名字="+s.name);//null
 	System.out.println("年龄="+s.age);//0
 	System.out.println("性别="+s.sex);//false
 	System.out.println("地址="+s.addr);//null
 	s.no =10;
 	s.name="jack";
 	s.age=20;
 	s.sex=true;
 	s.addr="北京";
 	System.out.println("学号="+s.no);//10
 	System.out.println("名字="+s.name);//jack
 	System.out.println("年龄="+s.age);//20
 	System.out.println("性别="+s.sex);//true
 	System.out.println("地址="+s.addr);//北京
 	Student stu = new Student();
 	System.out.println("学号="+stu.no);//0
 	System.out.println("名字="+stu.name);//null
 	System.out.println("年龄="+stu.age);//0
 	System.out.println("性别="+stu.sex);//false
 	System.out.println("地址="+stu.addr);//null 	
}

内存空间
1、JVM(java虚拟机)主要包括三款内存空间:栈内存、堆内存、方法区内存
2、堆内存和放法区内存各一个,一个线程一个栈内存。
3、方法调用的时候,所需要的内存空间在栈内存中分配,称为压栈。方法执行结束之后,该方法所属的内存空间释放,称为弹栈。
4、栈中主要存储的是方法体当中的局部变量。
5、方法的戴拿片段一级整个类的代码片段都被存储到方法区当中,在类加载的时候这些代码片段会载入。
6、在程序执行过程中使用new云幸福创建的java对象,存储在堆内存当中,对象内部有实例变量,所以实例变量存储在堆内存当中
7、
局部变量–方法体重声明
成员变量–方法体外声明
实例变量前边修饰符没有static
静态变量前边修饰符中有static
8、静态变量存储在方法区内存当中。
9、三块内存当中变化最频繁的是栈内存。最先有数据的是方法区内存,垃圾回收器主要针对的是堆内存。
10.垃圾回收器【自动来及回收机制、GC机制】什么时候会考虑将某个java对象的内存回收呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值