小白每天要努力-----Java入门简记
Posted 敲代码的xiaolang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小白每天要努力-----Java入门简记相关的知识,希望对你有一定的参考价值。
本博文是根据b站《狂神说Java》整理的代码示范,实际代码有很多,笔者选取了部分有代表性的代码,加以注释,难度对于刚入门JAVA的小白而言还可,如果有问题,欢迎在评论区留言,或者去b站寻找讲解视频。笔者也是刚学JAVA,推荐csdn一位博主----“编程界明世隐”,他的专栏里有蛮适合小白的《Java小白入门200例》,以及《从零学Java》。其他的大佬也有很多,大家选择自己喜欢的即可。
一、Java基本数据类型
package base;//栗子如下
public class demo02 {
public static void main (String[] args) {
//整数
int num1=10;
byte num2=20;
short num3=30;
long num4=40L;//long要加 L
//浮点数
float num5=50.1F;//float要加 F
double num6=60.1;
//字符类型
char name='亲';
String a = "hello";
//布尔值
boolen flag=true;
System.out.println(a);
}
}
我们再进行更多的比较:
package base;
public class demo03 {
public static void main(String[] args){
int i=10;
int i2=010;//八进制
int i3=0x10;//十六进制
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
//====================================
//浮点数
System.out.println("======================================");
//BigDecimal 数学工具类
//浮点数的特点: 有限, 离散, 舍入误差, 大约, 接近但不等于
//不要用浮点数进行比较
float f=0.1f;
double d=1.0/10;
System.out.println(f==d);
float d1=231321213212f;
float d2=d1+1;
System.out.println(d1==d2);//已经越界了
//================================
System.out.println("======================================");
char c1='a';
char c2='种';
System.out.println(c1);
System.out.println((int)c1);
System.out.println(c2);
System.out.println((int)c2);
//所有的字符本质还是数字
//编码 Unicode 2字节 范围: 0-65536
char c3='\\u0061';\\\\转为a
System.out.println(c3);
//转义字符
System.out.println("Hello\\tWorld!");//Hello World
//还有很多扩展
String sa = new String ("hello");
String sb = new String ("hello");
System.out.println(sa==sb);
System.out.println("======================================");
String sc="hello";
String sd="hello";
System.out.println(sc==sd);
System.out.println("======================================");
//boolean
boolean flag = true;
if(flag==true){}
if(flag){}
}
}
输出结果为:
类型转换
package base;
public class demo04 {
public static void main(String [] args){
int i=128;
byte b=(byte)i;//byte 取值范围 -128~127
//强制转换 (类型)变量名 高到低
//自动转换 低到高
System.out.println(i);
System.out.println(b);
System.out.println((int)23.7);//23
System.out.println((int)-45.89f);//-45
char c='a';
int d=c+1;
System.out.println(d);
System.out.println((char)d);
}
}
/*
1.不能对布尔值转换
2.不能把对象类型转换为不相干类型
3.高容量转换到低容量,强制转换
4.转换的时候可能有内存溢出,或者精度问题
*/
运行结果:
溢出
package base;
import javax.swing.plaf.synth.SynthLookAndFeel;
public class demo05 {
public static void main(String[] args){
int money=10_0000_0000;
int years =20;
int tatal =money*years;//溢出
long tatal2 =money*years;//转换为 long类型之前,已经溢出
long total23 = money*((long)years);//先把一个数转换为long
System.out.println(total23);
}
}
变量
package base;
public class demo07 {
//类变量
//实例变量:丛属于对象;
int age;
//main方法
public static void main(String[] args){
//局部变量:必须声明和初始化值
int i=10;
System.out.println(i);
demo07 Demo07 =new demo07();
System.out.println(Demo07.age);
}
//其他方法
public void add(){
}
}
/*
运行结果:
10
0
*/
java命名规范
package base;
public class demo08 {
public static final double PI=3.14;//常量之前的都是标识符,有无public均可,public 可以写成private
//注意命名的规范
/*类成员变量:首字母小写和驼峰原则
例如:lastName
局部变量:首字母小写和驼峰原则
常量:大写字母和下划线
类名:首字母大写,驼峰
方法名:首字母小写和驼峰 run()
*/
public static void main(String[] args){
System.out.println(PI);
}
}
运算符
package base;
import java.awt.desktop.SystemEventListener;
public class demo09 {
public static void main(String[] args){
//运算符
int a=10;
int b=20;
long c=2545645645645L;
int d=25;
short e=10;
byte f=8;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);//
System.out.println("======================================");
System.out.println(c+d+e+f);//long //有long参与运算时,转为long
System.out.println(d+e+f);//int
System.out.println(e+f);//int 我们看一个short,一个 byte ,它运行完是int
System.out.println("======================================");
}
}
短路运算
package base;
public class demo10 {
public static void main(String[] args){
//math类
double pow=Math.pow(2,3);
System.out.println(pow);
System.out.println("======================================");
//短路运算
int a=5;
boolean b=(a<4)&&(a++<4);//判断错误,后面就不再运行了
System.out.println(a);
System.out.println(b);
}
}
位运算
package base;
public class demo11 {
public static void main(String[] args){
/*
A = 0011 1100
B = 0000 1101
-----------------
//我们 A 和 B 一位一位比对,得出结果
A&B = 0000 1100 //当全部为1的时候,是1
A|B = 0011 1101 //有一个1,就是1
A^B = 0011 0001 //不同为1,相同为0
~B = 1111 0010 //取反
2*8 = 16 2*2*2*2
--------------------
<< 表示 *2
>> 表示 /2
---------------------
0000 0000 -> 0
0000 0001 ->1
0000 0010 ->2
0000 0011 ->3
0000 0100 ->4
0000 1000 ->8
0001 0000 ->16
*/
System.out.println(2<<3);
}
}
" "的位置
package base;
public class demo12 {
public static void main(String[] args){
int a=10;
int b=20;
System.out.println(" "+a+b);//先转换为字符串
System.out.println(a+b+" ");//先转换为数
//x?y:z
//如果x==true.则结果为y,否则结果为z
}
}
/*结果是:
1020
30
*/
二、Scanner基本使用
接收数据
package base2;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args){
//创建一个扫描器对象,用来接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接受:");
//判断有没有输入字符串
if(scanner.hasNext()){
//使用next接受
String str = scanner.next();//输入数据
System.out.println("输入的内容为:"+str);
}
scanner.close();//使用IO流,用完关掉
}
}
//注意:next不能得到有空格的字符串
运行结果:
那我们想在字符串里面加空格,我们就要用到下面的方式:
package base2;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine方式接受:");
if(scanner.hasNextLine()){
String str = scanner.nextLine();
System.out.println("输出内容:"+str);
}
scanner.close();
}
}
//以回车为结束符
做一个栗子,我们输一个数,判断是否符合当前类型,并且输出:
package base2;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i=0;
float f = 0.0f;
System.out.println("请输入整数:");
if(scanner.hasNextInt()){
i=scanner.nextInt();
System.out.println("整数数据: "+i);
}else{
System.out.println("输入的不是整数数据。");
}
System.out.println("输入小数:");
if(scanner.hasNextFloat()){
f=scanner.nextFloat();
System.out.println("小数数据:"+f);
}else{
System.out.println("输入的不是小数。");
}
}
}
运行结果:
有的时候我们或许会遇到让我们一个个输入,但是输多少个却不能提前预判,那我们也可以使用hasNextDouble来帮助我们,比如下面这个栗子,我们用一个“ / ”结束输入:
package base2;
import java.util.Scanner;
public class Demo05 {
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=m+1;
sum=sum+x;
System.out.println("你输入了第"+m+"个数据,当前结果为sum="+sum);
}
System.out.println(m+"个数的和是"+sum);
System.out.println(m+"个数的平均数是"+(sum/m));
scanner.close();
}
}
运行结果:
equals:
快速判断字符串是否相等,用法如下:
package base2;
import java.util.Scanner;
public class Demo06 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容:");
String s = scanner.nextLine();
// equals:判断字符串是否相等
if(s.equals("Hello")){
System.out.println(s);
}
System.out.println("End");
scanner.close();
}
}
找素数
package base2;
public class Demo09 {
public static void main(String[] args) {
int count = 0;
outer:for(int i =101;i<150;i++){
for(int j=2;j<i/2;j++){
if(i%j == 0){
continue outer;//我们如果发现这个数在除了1和它本身外,其他数也满足条件的时候,我们就使用continue返回到outer这个方法继续执行
}
}
System.out.println(i+" ");
}
以上是关于小白每天要努力-----Java入门简记的主要内容,如果未能解决你的问题,请参考以下文章
Java小白入门200例105之Java ArrayList类