javac JDK;

jdk-->x.java--->x.class;

JRE-->x.class--->翻译给操作系统。

例如:命令javac Test.java就是按照上述操作顺序编译出Test.class;然后用Java Test翻译Test.class文件给操作系统

Java SE是最原始的Java功能;Java EE是Java用于网站方面的开发;JavaME是Java用于安卓方面的开发。

类(class)用大驼峰命名法,首字母大写,小驼峰命名法,首字母要小写,其他的大写常用语文件名、变量名和方法名。

数据类型:

整型

int 32bit;short 16bit;long 64bit;byte 8bit

取值范围

int:-2^31~2^31-1

short:-2^15~2^15-1

浮点型

float 类型的有效位是6、7位,有效位是从第一个不为0的数开始,往后的都是有效位

由此可以看出,float类型的数精度并不是很高。当data趋于0是精度越高,反之精度越低,呈现指数级下降。虽然int和float类型都占32位,但是不能说float类型的精度就比int类型高。

char-根据编码决定 Unicode/GBK 16bit UTF-8 16-32bit

boolean-32bit ----boolean类型有两个值TRUE和FALSE,用来判断逻辑条件,同时整型值和布尔值之间不可以相互转化。

进制在计算机中的编写形式:

int y1=ob1101010二进制;

inty1=074556 八进制;

int y3=oxad5659十六进制;

进制转换:

1、十进制转m进制,就是除m求余,直到商为0.

2、N进制1后面有几个0就是N^m:

int 456 = 256+128+64+8 =11101000;

float 1 : 8 : 23

0            00000000        00000000000000000000000

符号位            阶码 x                        数值y

计算公式:float(2^(x-127))*y

double 1:11:52 (2^(x-1024))*y

所有的编码都是ASCII编码,ASCII编码在其他编码中数值是不变的,但是所占的位数是不同在ASCII中占8位,在Unicode中就占16位。

码点:是指一个编码表中某个字符对应的代码值

代码单元:存储单位16bit,每个字符用16位表示

高速缓存的基准单元是64B,每个缓存行都有一个主线相连。

在Java中声明的数据要大一点,增大boolean减少排队数据的个数,减少堵塞概率。

变量:

除了8大基本类型其余的都是引用类型,基本类型的数组,也是引用类型(基本类型和引用类型的区别在后面会写到)

常量:

在Java中利用final来指示常量,表示这个变量只能被赋值一次,一旦被赋值就无法修改;常量名使用全大写。

重点:final的作用

1、final m1=90;定义的常量,且不可以修改

2、final修饰的类不可被继承

3、final修饰的方法不可以被重写

4、final防止多程序下的指令重排序,保障线程的安全

使用Math类中的方法

1、Math.方法

2、在文件的开头加上

import static java.lang.Math.*;

就可以直接使用Math类中的方法。

常见的Math类中的方法:

Math.sqrt() 根号

Math.pow(x,a);x^a

强制类型转换:

int x2=20000000000;
byte b1 =(byte)x2;

结果只会保留最右侧的位数,左侧的位数都会舍弃,导致精度大程度降低。

二进制移位:

int b=a<<3;//a*2^3
int c=b<<3;//b/2^3;
int c=a>b?10:20;//如果a>b成立c=10,否则c=20

自增:

int m=7;

int a=2*++m;//现在a=16,m=8

int b=2*m++;//b=14,m=8

三元操作符:

?:

x<y?x:y;//如果x<y则x否则y

字符串:

new

new:表示的是重新开辟一个新的空间

String a =new String("aaa");

---------

String a =“aaaa";

String b =“aaaa";

a==b;//为TRUE,因为他们引用的是同一个地址的值

String c =new String("aaa");

String d =new String("aaa");

c==d;//为FALSE,因为new是新开辟的空间,所以c和d 的引用地址是不同的。

1、获取子串

substring()方法

String aa="dashsjdhaus";
String b=aa.substring(2,4);//前闭后开[2,4)2、3

2、拼接

String expletive = "Expletive";
String PC13 = "deleted";
String message = expletive + PC13;
//
String all = String.join("/","s","m");

3、不可变字符串:

不能再原地址上修改,是因为原地址空间是固定的,如果后来的数据可能过大。修改完之后,原地址的数据就会被抛弃;实际上是被标记为无效,等下一次使用该地址时直接被覆盖。

4、检测字符串是否相等

引用类型==引用类型 表示两个引用类型,引用的地址是同一个地址的数据,是同一个就返回TRUE,不是返回FALSE

a、c为两个字符串(引用类型)a==c比较的是两个字符串所存储的地址是否相同,a.equals(c)是比较两个值是否相等。

使用equals()方法判断字符串是否相等

“hello”.equals("hello");
“hello”.equalslgnoreCase("hello");//不区分大小写

空串和Null串

Strring a=“”;//空串

String b =Null;//Null串

判断一个字符串既不是空串也不是null串

if(str != null && str.length() !=0);

字符串的其他方法

char x=a.charAt(int index);//获取指定索引位置的字符

int x2=a.codePointAt(int index);//获取指定索引位置的编码值

boolear  x3 =a.startsWith(String prefix);//字符串a是否以  开头,是返回TRUE

int x4=a.indexOf("字符串");//包含字符串,返回索引值>0,不包含返回-1;

st1 =a.replace("sd","=");//用“=”替换a中的“sd”。

String[] arr=a.split("s");//用字符s对a字符串进行切割,返回数组

int all =a.lenth();//返回数组a 的长度

{long start=System.currentTimeMillis();//获取当前毫秒数

long end=System.currentTimeMillis();//获取当前毫秒数

num= (end - start);//返回花费的毫秒数}

StringBuilder b=new StringBuilder();

for(int i= 0;i<1000;i++){b.append(" "+i);}//因为b是StringBuilder类型的字符,花费时间很小。

char b1=a.charAt();//获取指定位置的字符int b2=a.codePointAt();//获取指定字符的编码boolean b3=a.startsWith("");//是否以该字母开头boolean b3=a.endsWith("");//是否以该字母结尾int indexOf("");//是否包含该字符串st1 = st1.replace("ad","+");//替换String[] arr = st1.split("");//分裂
for(String s:arr){
System.out.println(s);
}int l1=st1.length();//记录字符长度String a="";StringBuilder b =new StringBuilder();long start=System.currentTimeMillis();for(int i=0;i<10000;i++){//a +=1;b.append("" + i);                  }String b=b.toString();long endtime=System.currentTimeMillis();System.out.println("总花费时间是:"+(endtime -
start)+"毫秒数");
b.append(""+i);//拼接功能

5、String,StringBuilder,StringBuffer的区别

String aa=new String aa();//一个字符占一页

StringBuilder aa=new StringBuilder aa();//一开始申请的空间很大,不需要换页存储,运行速度快。

StringBulider和StringBuffer分配空间的方式是一样的,不同的是StringBuffer是内部加锁,在多线程下是安全的,StringBuiilder在多线程下是不安全的。

输入输出:

1、读取输入

System in = new Scanner(System.in);

int num = in.nextInt();//输入参数,这句话在代码中出现几次,就会等待输入几次

import java.uitl.*;//这是运行Arrays类的前提
....
System.out.println("请输入数组大小");
Scanner aaa=new Scanner(System.in);
int num = aaa.nextInt();
int[] arr=new int[num];
System.ouy.println("请向数组中添加数据");for(int i=0;i<num;i++){arr[i]=aaa.nextInt();    }
System.out.println(Arrays.toString(arr));

2、格式化输出

System.out.print(x);直接输出x;

System.out.printf("%8.2f",x);打印出用8个字符的宽度和小数点等候两个字符的精度的x。

在printf中可以打印多个参数,

Switch循环语句:

Scanner in =new Scanner(System.in);
int choice=in.nextInt();
Switch(choice)
{case 1:....;break;  case 2:....;break; case 3:....;break; default :System.out.println();return;
}

每一个case要对应一个break否则就会直接执行下一个case,引发错误。

设计一个计算器

public class Test{ public static void main(String[] aaaa){System.out.println("欢迎使用百望山计算器,请选择计算类型数字:");System.out.println("1-加法: 2-减法: 3-乘法: 4-除法:");System.out.println("请输入计算类型:");Scanner aa= new Scanner(System.in);int flagtype =aa.nextInt();switch(flagtype){case 1:System.out.println("您选择的是加法计算:");break;case 2:System.out.println("您选择的是减法计算:");break;case 3:System.out.println("您选择的是乘法法计算:");break;case 4:System.out.println("您选择的是除法法计算:");break;default:System.out.println("您选择的是非法计算,请重新开始:");break;}System.out.println("请输入要计算的两个数字:");int num1=aa.nextInt();int num2=aa.nextInt();System.out.println("新输入的两个数字是:" + num1 +","+num2);if(flagtype ==1){System.out.println("最终的计算结果是:" + (num1 + num2));}else if(flagtype ==2){System.out.println("最终的计算结果是:" + (num1 - num2));}else if(flagtype ==3){System.out.println("最终的计算结果是:" + (num1 * num2));}else {System.out.println("最终的计算结果是:" + (num1 / num2));}}}
}

for each 循环

for (variable : collection) statement

collectiom这一集合表达式必须是一个数组或者是一个实现Iterable接口的类对象

for(int x:arr)System.out.println(x);

大数值:

java.math包中有两个很有用的类BigInteger和BigDecima;BigInteger实现任意精度的整数运算;BigDecimal实现任意精度的浮点数运算。

使用静态的valueOf方法可以将普通的数值转换为大数值,

BigInteger a=BigInteger.valueOf(100);

BigInteger c=a.add(b);//c=a+b;

BigInteger d=c.multiply(b.add(BigInteger.valueOf(2)));//c*(b+2)

BigDecimal同BigInteger用法一样

数组:

int num=90;

int[] arr=new int[num];//数组上来就要确定数组的大小

1、匿名数组

new int[]{7,8,9};//初始化一个匿名数组

smallPrimes=new int[]{7,8,9};

2、Arrays类的使用

import java.util.*;

或者

引用类型数组,复制数组使用Arrays.copy();

算法中常使用的排序函数Arrays.sort();

第3章基本程序设计结构(java知识点笔记)相关推荐

  1. Java知识点笔记(一):how2j.cn的学习(一)

    本文内容的学习网站:http://how2j.cn/ 1.创建 Java 项目 File -> New -> Other -> Java -> Java Project 2.常 ...

  2. 2022年Java学习笔记目录

    一.2022年Java任务驱动课程 任务驱动,统摄知识点:2022年Java程序设计讲课笔记 二.2022年Java学习笔记 (一)踏上Java开发之旅 Java学习笔记1.1.1 搭建Java开发环 ...

  3. CoreJava 笔记总结-第三章 Java的基本程序设计结构

    CoreJava 笔记总结 文章目录 CoreJava 笔记总结 第三章 Java的基本程序设计结构 数据类型 1. 整型 2. 浮点类型 3. char类型 4. boolean类型 变量与常量 1 ...

  4. Java核心技术卷阅读随笔--第3章【Java 的基本程序设计结构】

    3.1 一个简单的Java应用程序 下面看一个最简单的 Java 应用程序,它只发送一条消息到控制台窗口中: 复制代码 public class FirstSample { public static ...

  5. 第2章(Java 的基本程序设计结构)

    第2章(Java 的基本程序设计结构) 文章目录 第2章(Java 的基本程序设计结构) 2.1一个简单的 Java 应用程序 2.2注 释 2.3数据类型 2.3.1整型 2.3.2浮点型 2.3. ...

  6. 201671010135 2016--2017java程序设计对java的初步认识和对第一,二章的总结(0)

    201671010135  2016--2017<java程序设计>对java的初步认识和对第一,二章的总结(0) java是一种程序语言设计.html是一种描述网页结构的方式.除了用于在 ...

  7. java第五章上机流程图,第五章汇编语言程序设计

    第五章汇编语言程序设计Tag内容描述: 1.1 第5章 汇编语言程序设计 概述 顺序程序设计 分支程序设计 循环程序设计 子程序设计 2 5 1 概述 汇编程序中的语句 编写汇编程序的一般步骤 3 一 ...

  8. 《Java程序设计》实验报告——Java的基本程序设计结构

    浙江理工大学 <Java程序设计>  实验报告  20 19-20 20学年第 1学期      学  院 信息学院 班  级 计算机科学技术18(3) 姓  名 申屠志刚 学  号 20 ...

  9. JAVA实验——Java的基本程序设计结构

    实验一  Java的基本程序设计结构 实验目的 熟悉Java开发环境,建立Java工程,练习编程,会使用变量,字符串,数组,输入与输出等API. 实验内容 利用eclipse建立Java工程 必做题 ...

  10. 语言求余和乘除优先级_愉快地学Java语言:第二章基本程序设计 第2讲

    导读 本文适合Java入门,不太适合Java中高级软件工程师. 本文以<Java程序设计基础篇>第10版为蓝本,采用不断提出问题,然后解答问题的方式来讲述. 本篇文章只是这个系列中的一篇, ...

最新文章

  1. k8s概念入门之kubelet-针对1.1.版本阅读
  2. a 标签 里面的 ul样式乱了
  3. 杨百万建议股民可以从以下几个方面进行
  4. which和whereis
  5. JTable常见用法细则
  6. sql 数据库 实例删除
  7. 59 javabean的创建
  8. alert.log中的minact-scn: useg scan erroring out with error e:376警告
  9. 对二宝软件的NABCD分析
  10. 计算机术语多态意思,计算机外文翻译测试多态的关系的准则.doc
  11. 身份证号码15位转18位
  12. 科比数据集分析与预测
  13. 文学赏析 - 人生若只如初见
  14. 软件测试系列——冒烟测试(Smoke Test,ST)
  15. PHP气缸种类,【汽缸】【气缸】|× 【Q】√ - 校对标准:寻找权威依据 - Powered by phpwind...
  16. 催眠曲用计算机怎么弹,在电脑中巧播“催眠曲”
  17. sqlserver 访问接口没有oracle,无法创建链接服务器XXXXX的OLEDB访问
  18. 提取视频中的音频 Python只需要三行代码!
  19. 如何解决 使用matplotlib.finance获取雅虎财经网站股票数据 报错?
  20. php 随机获取字母,PHP获取随机数字和字母的步骤大全

热门文章

  1. 汽车维修企业管理【15】
  2. oracle db recover参数,【参数】恢复db_recovery_file_dest_size参数为默认值“0”方法
  3. 立志让国内用户不再依赖国外DLP技术 天空卫士发布UCS新品
  4. 用VB实现网页下载跟踪程序
  5. 股市入门:应对股市涨跌方法
  6. 【测绘程序设计】——大地坐标与空间直角坐标转换
  7. mui实现分享功能_Hbuilder 云端打包app微信分享功能源码示例
  8. Python分析《三国演义》中的社交网络
  9. java基础-java概述,基本数据类型,基础语法
  10. 计算机积木游戏,A*算法分析(积木块游戏)