Java基础学习
Hello,Word!
- 打开IDEA (java编译器,可以百度安装)
- 配置好Java环境变量(安装完,在path中添加java的bin目录)
- 在src文件中新建名为“Hello”的文件
- 写下以下代码
public class Hello {
public static void main(String[] args) {
System.out.println(“Hello,Word!”);
}
}
- 运行代码
标识符
- 所有的标识符都应该以字母(A-Z或者a-z),美元($),或者下划线(_)开头。
- 首字符之后可以是字母,$,_,或者数字的任意组合。
- 不能使用关键字作为变量名或者方法名
- 标识符是大小写敏感的
- 合法字符举例:age,$sad,_sadsad, _1 _13s
- 非法字符举例:123abc,-dasd,#abc
- 可以使用中文命名,但是一般不建议使用。
数据类型
强数据类型
- 要求变量使用要严格符合规定,所有变量都必须先定义后使用
弱数据类型
- 与上相反
Java的数据类型分两大类
- 基本类型(primitive type)
- 数值类型
- 整数类型
- byte占1个字节范围: -128-127
- short占2个字节范围:-32768-32767
- int占4个字节范围: -2147483648-2147483647
- long占8个字节范围: -9223372036854775808
- 9223372036854775807
- 浮点类型
- float占4个字节
- double占8个字节
- 字符类型char占2个字节
- 整数类型
- boolean类型:占1位其值只有true和false两个
- 数值类型
- 引用类型(reference type)
- 类
- 接口
- 数组
编写代码
类型转换
public static void main(String[] args) {
int i = 128;
byte n = (byte)i;
double o = i;
//强制转换 (类型)变量名 高->低
//自动转换 低->高
System.out.println(i);
System.out.println(n);
System.out.println(o);
/*
注意点:
1. 不能对布尔值进行转换
2. 不能把对象类型转换为不相干的类型
3. 在把高容量转换到低容量的时候,强制转换
4. 转换的时候可能存在内存溢出或者是精度问题
*/
System.out.println("==============");
System.out.println((int)27.4);
System.out.println((int)-45.48f);
//=================================================
//操作比较大的数值的时候,注意溢出问题
//JDK7新特性,数字之间可以使用下划线分割
int money= 10_0000_0000;
int years=20;
int total=money*years;//-1474836480,计算的时候内存溢出
long total2=money*years;//默认是int,转换之前已经存在问题了
long total3=money*(long)years;//先把一个数据转换成long
System.out.println(money);
System.out.println(total);
}
}
顺序结构
public class order {
public static void main(String[] args) {
System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
System.out.println("5");
}
}
输入语句
//hasNext
package java1.scanner;
import java.util.Scanner;
public class Select {
public static void main(String[] args) {
//创建一个扫描器对象,用于接受键盘数据
Scanner S = new Scanner(System.in);
System.out.println("使用nxet方式接收");
//判断用户有没有接收输入字符串
if (S.hasNext()){
//使用next方式接收
String str=S.next();//程序会等待用户输入完毕
System.out.println("输入的内容为"+str);
}
//凡是属于IO流(输入输出)的类如果不关闭会一直占用资源,要养成好习惯,用完就关掉
S.close();
}
}
//hasNextLine
package java1.scanner.java01;
import java.util.Scanner;
public class Scan {
public static void main(String[] args) {
//从键盘接收数据
Scanner S = new Scanner(System.in);
System.out.println("使用nextLine方式接收");
//判断是否有输入
if (S.hasNextLine()){
String str = S.nextLine();
System.out.println("输出的内容为"+str);
}
S.close();
}
}
//scanner进阶
package java1.scanner.java01;
import java.util.Scanner;
public class HasNext {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//从键盘接收数据
int i=1;
float f=0.0f;
System.out.println("请输入整数:");
//如果。。。那么
if (scanner.hasNextInt()){
i = scanner.nextInt();
System.out.println("整数数据:"+i);
}else {
System.out.println("输入的不是整数数据:"+i);
}
System.out.println("请输入小数:");
//如果。。。那么
if (scanner.hasNextFloat()){
f = scanner.nextFloat();
System.out.println("小数数据:"+f);
}else {
System.out.println("输入的不是小数数据:"+f);
}
scanner.close();
}
}
//例题
package java1.scanner.java01;
import java.util.Scanner;
public class Add {
public static void main(String[] args){
//输入多个数字,并求其总和与平均数,
//每输入一个数字用回车确认,通过输入
//非数字结果输出并输出结果
Scanner scanner = new Scanner(System.in);
//和
double sum= 0;
//计算输入了多少个数字
int m=0;
//通过循环判断还有是否还有输入,并在里面对每一次进行求和统计
while (scanner.hasNextDouble()){
double x = scanner.nextDouble();
m++;
sum=sum+x;
System.out.println("你输入了第"+m+"个数据"+"当前结果为"+sum);
}
System.out.println(m+"个数的和为"+sum);
System.out.println(m+"个数的平均值是"+(sum/m));
scanner.close();
}
}
选择结构
语法
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
switch多选择结构
package java1.scanner.java01;
public class Fan {
public static void main(String[] args) {
//字符的本质还是数字
//反编译 java---class(字节码文件)---反编译(IDEA)
String name="小明;
switch(name){
case "小明":
System.out.println("小明");
break;
case "兰如生":
System.out.println("兰若生");
break;
default:
System.out.println("弄啥嘞!");
break;
}
}
}
反编译
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package java1.scanner.java01;
public class Fan {
public Fan() {
}
public static void main(String[] args) {
String name = "小明";
byte var3 = -1;
switch(name.hashCode()) {
case 20775245:
if (name.equals("兰如生")) {
var3 = 1;
}
break;
case 38262113:
if (name.equals("小明")) {
var3 = 0;
}
}
switch(var3) {
case 0:
System.out.println("小明");
break;
case 1:
System.out.println("兰若生");
break;
default:
System.out.println("弄啥嘞!");
}
}
}
数组
package java1.scanner.java03;
public class ABC {
public static void main(String[] args) {
int[] a={1,2,3,4,5};
//打印全部数组元素
for (int i = 0; i <a.length; i++) {
System.out.println(a[i]);
}
//计算所有数组元素的和
int sum=0;
for (int i = 0; i < a.length; i++) {
sum+=a[i];
}
System.out.println("sum="+sum);
//数组最大值
int i=a[0];
for (int j = 1; j < a.length; j++) {
if (a[j]>i){
i=a[j];
}
}
System.out.println("max="+i);
}
}
遍历数组
package java1.scanner.java04;
public class ShuZhu {
public static void main(String[] args) {
int[] a= {1,2,3,4,5,6,7,8,9};
for (int i : a) {
System.out.println(i);
}
}
}
package java1.scanner.java04;
public class ShuZhu {
public static void main(String[] args) {
int[] a={1,2,3,4,5,6};
p(a);
System.out.println();
p(s(a));
}
//反转数组
public static int[] s(int[] x){
int[] a=new int[x.length];
for (int i = 0,j=x.length-1; i < x.length; j--,i++) {
a[i]=x[j];
}
return a;
}
//打印数组
public static void p(int[] x){
for (int i = 0; i < x.length; i++) {
System.out.print(x[i]+" ");
}
}
}
冒泡排序
ps:以下是两个文件代码
package java2;
public class Cha {
public static void main(String[] args) {
int[] s = new int[5];
s=new int[] {1,5,3,4};
Cha1 cha1 = new Cha1();
cha1.shucc(s);
Cha1.paixu(s);
System.out.println();
cha1.shucc(s);
}
}
==========================================
package java2;
public class Cha1 {
public void shucc(int[] s){
for (int i = 0; i < s.length; i++) {
System.out.print(s[i]+" ");
}
}
public static void paixu(int[] s){
for (int i = 0; i < s.length; i++) {
for (int j = 0; j < i; j++) {
int t;
if (s[j]>s[j+1]){
t = s[j];
s[j]=s[j+1];
s[j+1]=t;
}
}
}
}
}
以上笔记来自B站狂神说java视频中我手抄下来的笔记,因为是第一次写博客,如果有任何不足或者侵权的地方请联系我改进或删除,应该没什么大问题吧。最后希望大家学好编程,额,就这样吧0.0
附上狂神的视频链接:
https://www.bilibili.com/video/BV12J41137hu