一、了解行业(他人的实习分享):
一些准备和建议:
1.有能力的话加入一些学校厉害的实验室(里面有许多资源)
)
2.多拿一些奖(互联网+,计算机设计大赛,等等)
3.实习:
大厂的实习是很早的现在的1月份和2月份已经开始了(你不能否认的是 大厂实习也有提前批(所谓的保送生 气死))要确定好自己投递的时间 ,
大厂的简历不要乱投(没有准备的那种)因为你的每一次面试大厂都会记录,大厂一般有5面 每次面试后HR会写评语 ,如果你前几次面试不好会非常影响此次的面试。
4.心态
放平心态,找工作70%靠的是运气,30%靠的是实力,很多时候你可能比其他人技术更好,能力更强,但是面试官选择了另一个人,挂了你,不是你不行,而是刚好另一个人运气好,更贴合面试官的喜好和岗位匹配度。
对于学计算机的同学来说,若本科就业,首选央企、互联网中大厂,次选国企小厂,不建议去外包(包括华为od)。
现实情况:现在计算机就业市场存在饱和,各个中大厂逐渐减少校招名额和比例,各家都在降本增效,拿到中大厂offer的难度与日俱增。同时很多下岗大厂员工投身进入所谓的“程序员速成班”,越来越多不明觉厉的人进入互联网企业做起了外包,导致大厂的用人倾向逐渐倾向外包化,在可预见的未来互联网行业只会越来越卷。
自身条件:进入中大厂的水平要求较高,如果你大学三年都没有很好地积累非常扎实的技术栈和较多的项目开发经验,那么卷中大厂绝对不是一个好的选择。
如果你熟悉Java、Python、Go、Js等任意技术栈(有熟练理解其底层原理),并且至少刷完了力扣100题(这是一个主题),那么好好准备可以冲大厂了。
中大厂/央企/国企/小厂 区别:
本质上不论去哪种性质的企业,作为程序员,干的活基本都是差不多技术水平的(算法岗除外),面试造火箭,工作拧螺丝就是这个道理。
中大厂的优势:平台大、相对机会多,流程规范,优势项目经验多,大厂经验会非常 宝贵。
中大厂劣势:压力大、裁员可能高、没有个人时间
中大厂适合什么人:技术水平高、喜欢打拼、想赚钱
央企/大型国企优势:平台大、环境相对轻松、稳定,福利高
央企/大型国企劣势:门槛高
央企/大型国企适合什么人:学习成绩优异、党员、想进体制但是不想考公,家里有背景。
小厂/边缘国企的优势:环境轻松、门槛低、部分有后发潜力
小厂/边缘国企劣势:待遇低、技术质量低、对个人提升很难没有促进
小厂/边缘国企适合什么人:技术力差,学习中等,喜欢轻松的生活工作
--思想:
我们大学的教育与社会是极其割裂的,在脱离大学进入社会前,一定要转变自己的思想。自信、善于表达自己、适度地装逼表现自己,要比闷头苦干的人更适合社会节奏。
二、学习内容
1.数组
/** * 遍历数组 */ public class ArrayDemo { public static void main(String[] args) { int[] arr = new int[5]; //int初始值默认为0 for (int i = 0;i < arr.length;i++){ System.out.println(arr[i]); } } }
2.动态数组
import java.util.Random; /** * 练习:双色球案例 * 共7个号码,其中红球6个,范围1-33;蓝球1个,范围1-17。 */ public class DoubleColorABall { public static void main(String[] args) { //声明一个int类型,长度为7的一维数组,动态 int[] arr = new int[7]; //创建一个随机数对象 Random random = new Random(); //开始摇号(向数组中添加值),需要先摇6红球,范围1-33 for(int i = 0;i < arr.length-1;i++){ //红球 arr[i] = random.nextInt(33)+1; //去重 for (int j = i-1;j >= 0;j--){ if(arr[i] == arr[j]){ //号码重复,重新摇号 i--; break; } } } //蓝球 arr[arr.length-1] = random.nextInt(16)+1; System.out.println("本期中奖结果为:"); for(int i = 0;i < arr.length;i++){ System.out.print(arr[i]+" "); } } }
3.面向对象
在Java中一切皆对象,一切都围绕对象进行,找对象、建对象,用对象等
类:把具有相同属性和行为的一类对象抽象为类。类是抽象概念,如人类、犬类等,无法具体到每个实体。
对象:某个类的一个实体,当有了对象后,这些属性便有了属性值,行为也就有了相应的意义。
类是描述某一对象的统称,对象是这个类的一个实例而已。有类之后就能根据这个类来产生具体的对象。一类对象所具备的共同属性和行为(方法)都在类中定义。
/** * 定义一个坐标类,特征有,横坐标x,纵坐标y, * 创建坐标类的对象,将对象信息打印出来,修改特征信息,并再次答应 */ public class Point { int x; int y; public static void main(String[] args) { Point p = new Point(); System.out.println("x = "+ p.x+" y = "+ p.y); p.x = 1; p.y = 2; System.out.println("x = "+ p.x+" y = "+ p.y); } }
/** * 实现Girl类的定义,特征有姓名,年龄,是否有男朋友,打印所有特征的方法,生成get,set方法 * 在main方法中打印初始特征,再修改特征为”貂蝉“,18,true */ public class Girl { String name; int age; boolean bf; public void print(){ System.out.println("姓名:"+name+" 年龄:"+age+" 是否有男朋友:"+bf); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public boolean isBf() { return bf; } public void setBf(boolean bf) { this.bf = bf; } public static void main(String[] args) { Girl g = new Girl(); g.print(); g.name = "貂蝉"; g.age = 18; g.bf = true; g.print(); } }
练习题:
public class T_Point { int x; int y; public T_Point() { } public T_Point(int x, int y) { this.x = x; this.y = y; } public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } public void print() { System.out.println("x:"+x+" y:"+y); } public int addX1(){ return x+1; } public int addY(int n){ return y+n; } public static void main(String[] args) { T_Point p = new T_Point(3,4); p.print(); p.x = p.addX1(); p.y = p.addY(6); p.print(); } }
public class Circle { double r; double pi = Math.PI; public double s(){ return r*r*pi; } public double l(){ return 2*r*pi; } public Circle(double r){ this.r = r; } public static void main(String[] args) { Circle circle = new Circle(4); System.out.println("面积为:"+circle.s()+" 周长为:"+circle.l()); } }
public class Vehicle { double speed; String type; public Vehicle(double speed, String type) { this.speed = speed; this.type = type; } public void move() { } public void setSpeed(double speed) { this.speed = speed; } public double getSpeed() { return speed; } public void speedUp(double s){ speed = s + getSpeed(); } public void speedDown(double s){ speed = getSpeed() - s; } public static void main(String[] args) { Vehicle vehicle = new Vehicle(20,"电动车"); System.out.println("速度为:"+vehicle.speed); vehicle.speedUp(10); System.out.println("速度为:"+vehicle.speed); vehicle.speedDown(5); System.out.println("速度为:"+vehicle.speed); } }
public class Rectangle { double length; double width; public Rectangle(double length, double width) { this.length = length; this.width = width; } public double getArea(){ return length * width; } public double getPer(){ return 2* (length + width); } public void showAll(){ System.out.println("长为:"+ length + " 宽为:"+ width +" 面积为:"+getArea() + " 周长为:"+getPer()); } public static void main(String[] args) { Rectangle rectangle = new Rectangle(10,5); rectangle.showAll(); } }
public class Car { String brand; String color; double price; public Car(String brand, String color, double price) { this.brand = brand; this.color = color; this.price = price; } public Car() { } public void print(){ System.out.println("品牌:"+brand+" 颜色:"+color+" 价格:"+price); } public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public void addPrice(double x){ price = x + getPrice(); } public void addPrice1000(){ price = 1000 + getPrice(); } public static void main(String[] args) { Car car = new Car(); car.print(); Car car1 = new Car("比亚迪","黑色",20000); car1.print(); } }