8.8Java学习随笔
计算机硬件
CPU
Memory(内存)
Motherboard (主板)
IO
冯诺伊曼
1、配置环境变量:右击“我的电脑”-->"属性"-->"高级系统设置"-->"高级"-->"环境变量"
1)在系统变量里新建"JAVA_HOME"变量,变量值为:C:\Program Files\Java\jdk1.8.0_60(根据自己的jdk的安装路径填写)
2)在系统变量里新建"classpath"变量,变量值为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意最前面有一点)
3)找到path变量(已存在不用新建)添加变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
? 注意变量值之间用";"隔开。注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入。如果你的系统是Windows10,就相对方便多了,不用担心这个";"。
2、“Windows+R”-->输入“cmd”-->Enter,输入java -version(记得中间有个空格),如果显示jdk版本信息就说明环境变量配置成功了。
JDK目录结构介绍
- /bin
Hello World 及 简单语法规则
public class Hello{
public static void main(String[] args){
System.out.print("hello.world!");
}
}
javac Hello.java #编译Java文件
java Hello #运行Java 输出打印
NotePad++ 安装和使用
Java 基础语法
注释
// 单行注释
/*
多行注释
*/
/**
@name
*/ 文档注释
标识符和关键字
数据类型
强类型语言
要求变量的使用要严格符合规定,所有的变量都必须先定义后才能使用
整数类型
- byte占一字节 (256)
- short占2个字节 (65536)
- int 占4个字节 (42亿)
- long 8个字节 #long num = 30L
字节
B与bit
数据存储是以“字节”(Byte)为单位,数据传输大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位 [4] 。
字(Word)
在计算机中,一串数码作为一个整体来处理或运算的,称为一个计算机字,简称字。字通常分为若干个字节(每个字节一般是8位)。在存储器中,通常每个单元存储一个字。因此每个字都是可以寻址的。字的长度用位数来表示 [5] 。
字长
计算机的每个字所包含的位数称为字长,计算的字长是指它一次可处理的二进制数字的数目。一般地,大型计算机的字长为32-64位,小型计算机为12-32位,而微型计算机为4-16位。字长是衡量计算机性能的一个重要因素。
1字节(Byte)=8位(bit)
? 1KB( Kilobyte,千字节)=1024B
? 1MB( Megabyte,兆字节)=1024KB
? 1GB( Gigabyte,吉字节,千兆)=1024MB
? 1TB( Trillionbyte,万亿字节,太字节)=1024GB
? 1PB( Petabyte,千万亿字节,拍字节)=1024TB
浮点类型
-
float 4个字节 #float num = 13.1F
-
double 8个字节 #
-
银行使用bigdecimal类 表示钱
布尔值
- Boolean
引用类型
- 类
- 接口
- 数组
Java
Math类
double math = Math.pow(2,8); //2^8
System.out.println(math);
逻辑运算符
int a1 = 4,a2 = 4;
boolean b = (a1<5)&&(a1++)<3;
System.out.println(b);
System.out.println(a1);
//输出结果 false
// 5
System.out.println("----------------");
boolean c = (a2<3)&&(a2++)<7; //一假则假 ,&&后面就不会在执行运算了
System.out.println(c);
System.out.println(a2);
//输出结果 false
// 4
字符串拼接符 +
//字符串连接符号 +
int x =10;
int y =10;
System.out.println(x+y);
System.out.println("string"+x+y); //前面有String类型的“+”为字符串拼接
System.out.println(x+y+"string"); //先运算 在与String拼接
//输出结果 20
// string1010
// 20string
三元运算符
//三元运算符
/*
* x ? y : z
* 如果x为true 则结果为 y 否则为z
*
* */
int score = 80;
String flag = score < 60 ? "不及格" : "及格";
System.out.println(flag);
//输出结果 及格
Java基础 二
用户交互 sanner
String str = null;
String str1 = null;
System.out.println("请输入:");
Scanner scanner = new Scanner(System.in);
/*if (scanner.hasNext()){ //只有一行 不能空格
str = scanner.next();
System.out.println("1\t"+str);
}*/
if (scanner.hasNextLine()){ //输入多行
str1 = scanner.nextLine();
System.out.println("2\t"+str1);
}
System.out.println("3 \t"+str + str1);
scanner.close();
//输入多个数字 并且累加 最后求出平均值
//输入多个数字 并且累加 最后求出平均值
double sum = 0; //总和
int m = 0; //数字个数
Scanner scanner = new Scanner(System.in);
//通过循环判断是否还有数字输入
while (scanner.hasNextDouble()){
double x = scanner.nextDouble();
sum += x;
m++;
System.out.println("输入的第"+m+"数为:"+x+"总和是:"+sum);
}
System.out.println(m+"个数的和为:"+sum+"\n"+m+"个数的平均值为:"+(sum/m));
scanner.close();
顺序结构
程序自上而下的执行
选择结构
if单选择结构
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
if (s.equals("hello")){
System.out.println(s);
}
System.out.println("end");
scanner.close();
if双选择结构
if (s.equals("hello")){
System.out.println(s);
}else System.out.println("end");
if多选择结构
if (s.equals("hello")){
System.out.println(s);
}else if(){
System.out.println("end");
}else if(){
}.......
if嵌套
if(){
if(){
if(){
}
}
}
switch选择
循环结构
//1-100的奇数和 偶数和
double sum1 = 0;
double sum2 = 0;
for (int i = 0; i <= 100; i++) {
if (i % 2 == 0)
sum1+=i;
else if (i % 2 != 0)
sum2+=i;
}
System.out.println("1到100偶数和:"+sum1);
System.out.println("1到100奇数和:"+sum2);
// 1-1000 输出能被5整除的数 每行三个
public static void main(String[] args) {
for (int i = 1; i <= 1000; i++) {
if (i%5==0){
System.out.print(i+"\t");
if (i%(5*3)==0)
System.out.println();
}
}
}
}
//九九乘法表
int result = 0;
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
result = i*j;
System.out.print(i+"*"+j+"="+result+"\t");
}
System.out.println();
}
break & continue
练习
递归
public static void main(String[] args) {
System.out.println(fou(5));
}
public static int fou(int i){
if (i==1)
return 1;
else
return i*fou(i-1);
}
冒泡排序
public class ArrayDemo {
public static void main(String[] args) {
int[] array = {6, 5, 6, 8, 2, 45, 78, 34};
int[] a = sort(array);
System.out.println(Arrays.toString(a));
}
public static int[] sort(int[] array) {
int temp = 0;
boolean flag = false;
//外层判断 共循环多少次
for (int i = 0; i < array.length -1 ; i++) {
//内层循环 ,比较两个数 比较两个数的大小
for (int j = 0; j < array.length - 1; j++) {
if (array[j] > array[j + 1]){
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
flag = true;
}
}
if (!flag){
break;
}
}
return array;
}